]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into asterisk-update
authorDirk Wagner <dirk.wagner@ipfire.org>
Mon, 19 May 2014 10:56:38 +0000 (12:56 +0200)
committerDirk Wagner <dirk.wagner@ipfire.org>
Mon, 19 May 2014 10:56:38 +0000 (12:56 +0200)
135 files changed:
config/backup/includes/stunnel [new file with mode: 0644]
config/backup/includes/watchdog
config/cfgroot/general-functions.pl
config/etc/passwd
config/firewall/convert-outgoingfw
config/firewall/rules.pl
config/kernel/kernel.config.armv5tel-ipfire-kirkwood
config/kernel/kernel.config.armv5tel-ipfire-multi
config/kernel/kernel.config.armv5tel-ipfire-rpi
config/kernel/kernel.config.i586-ipfire
config/kernel/kernel.config.i586-ipfire-pae
config/ovpn/settings
config/rootfiles/common/armv5tel/initscripts
config/rootfiles/common/armv5tel/linux-kirkwood
config/rootfiles/common/armv5tel/linux-multi
config/rootfiles/common/armv5tel/linux-rpi
config/rootfiles/common/daq
config/rootfiles/common/i586/initscripts
config/rootfiles/common/i586/linux
config/rootfiles/common/i586/syslinux
config/rootfiles/common/libsigc++ [deleted file]
config/rootfiles/common/libtorrent [deleted file]
config/rootfiles/common/snort
config/rootfiles/common/strongswan
config/rootfiles/common/usb_modeswitch_data
config/rootfiles/core/77/filelists/GeoIP [new file with mode: 0644]
config/rootfiles/core/77/filelists/files
config/rootfiles/core/77/filelists/hwdata [new file with mode: 0644]
config/rootfiles/core/77/update.sh
config/rootfiles/core/78/exclude [new file with mode: 0644]
config/rootfiles/core/78/filelists/armv5tel/linux-kirkwood [new symlink]
config/rootfiles/core/78/filelists/armv5tel/linux-multi [new symlink]
config/rootfiles/core/78/filelists/armv5tel/linux-rpi [new symlink]
config/rootfiles/core/78/filelists/daq [new symlink]
config/rootfiles/core/78/filelists/files [new file with mode: 0644]
config/rootfiles/core/78/filelists/i586/grub [new symlink]
config/rootfiles/core/78/filelists/i586/linux [new symlink]
config/rootfiles/core/78/filelists/i586/syslinux [new symlink]
config/rootfiles/core/78/filelists/openvpn [new symlink]
config/rootfiles/core/78/filelists/ppp [new symlink]
config/rootfiles/core/78/filelists/snort [new symlink]
config/rootfiles/core/78/filelists/squid [new symlink]
config/rootfiles/core/78/filelists/vnstat [new symlink]
config/rootfiles/core/78/meta [moved from config/rootfiles/core/75/meta with 100% similarity]
config/rootfiles/core/78/update.sh [new file with mode: 0644]
config/rootfiles/oldcore/75/exclude [moved from config/rootfiles/core/75/exclude with 100% similarity]
config/rootfiles/oldcore/75/filelists/files [moved from config/rootfiles/core/75/filelists/files with 100% similarity]
config/rootfiles/oldcore/75/meta [new file with mode: 0644]
config/rootfiles/oldcore/75/update.sh [moved from config/rootfiles/core/75/update.sh with 100% similarity]
config/rootfiles/packages/clamav
config/rootfiles/packages/linux-pae
config/rootfiles/packages/nut
config/rootfiles/packages/pound
config/rootfiles/packages/rtorrent [deleted file]
config/rootfiles/packages/sslscan [new file with mode: 0644]
config/rootfiles/packages/stunnel [new file with mode: 0644]
config/stunnel/stunnel.conf [new file with mode: 0644]
config/xen-image/xen-image-maker.sh
doc/language_issues.de
doc/language_issues.en
doc/language_issues.es
doc/language_issues.fr
doc/language_issues.nl
doc/language_issues.pl
doc/language_issues.ru
doc/language_issues.tr
doc/language_missings
html/cgi-bin/ddns.cgi
html/cgi-bin/entropy.cgi
html/cgi-bin/firewall.cgi
html/cgi-bin/fwhosts.cgi
html/cgi-bin/ids.cgi
html/cgi-bin/ovpnmain.cgi
html/cgi-bin/pppsetup.cgi
html/cgi-bin/proxy.cgi
html/html/themes/ipfire/include/functions.pl
langs/de/cgi-bin/de.pl
langs/en/cgi-bin/en.pl
langs/es/cgi-bin/es.pl
langs/fr/cgi-bin/fr.pl
langs/nl/cgi-bin/nl.pl
langs/nl/install/lang_nl.c
langs/pl/cgi-bin/pl.pl
langs/ru/cgi-bin/ru.pl
langs/tr/cgi-bin/tr.pl
langs/tr/install/lang_tr.c
lfs/GeoIP
lfs/clamav
lfs/daq
lfs/fireinfo
lfs/flash-images
lfs/initrd
lfs/libsigc++ [deleted file]
lfs/linux
lfs/mc
lfs/nut
lfs/openvpn
lfs/pound
lfs/ppp
lfs/rpi-firmware
lfs/snort
lfs/squid
lfs/sslscan [moved from lfs/libtorrent with 87% similarity]
lfs/strongswan
lfs/stunnel [moved from lfs/rtorrent with 80% similarity]
lfs/usb_modeswitch
lfs/usb_modeswitch_data
lfs/watchdog
make.sh
src/hwdata/pci.ids
src/hwdata/usb.ids
src/initscripts/init.d/dhcp
src/initscripts/init.d/fcron
src/initscripts/init.d/firewall
src/initscripts/init.d/networking/red
src/initscripts/init.d/nut
src/initscripts/init.d/sshd
src/initscripts/init.d/stunnel [new file with mode: 0644]
src/initscripts/init.d/watchdog
src/install+setup/install/main.c
src/install+setup/install/mountsource.sh
src/paks/stunnel/install.sh [new file with mode: 0644]
src/paks/stunnel/uninstall.sh [new file with mode: 0644]
src/paks/stunnel/update.sh [new file with mode: 0644]
src/patches/fireinfo-0001-Exclude-some-more-invalid-patterns.patch [deleted file]
src/patches/linux-3.10-layer7-filter.patch
src/patches/linux-3.10.37-rt2800usb_add_dlink_dwa137_usbid.patch [new file with mode: 0644]
src/patches/linux-3.10.39-add_libertas_uap.patch [new file with mode: 0644]
src/patches/ppp/0003-build-sys-utilize-compiler-flags-handed-to-us-by-rpm.patch [new file with mode: 0644]
src/patches/ppp/0012-pppd-we-don-t-want-to-accidentally-leak-fds.patch [new file with mode: 0644]
src/patches/ppp/0013-everywhere-O_CLOEXEC-harder.patch [new file with mode: 0644]
src/patches/ppp/0014-everywhere-use-SOCK_CLOEXEC-when-creating-socket.patch [new file with mode: 0644]
src/patches/ppp/ppp-2.4.6-increase-max-padi-attempts.patch [new file with mode: 0644]
src/scripts/backupiso
src/scripts/setddns.pl

diff --git a/config/backup/includes/stunnel b/config/backup/includes/stunnel
new file mode 100644 (file)
index 0000000..e5702f1
--- /dev/null
@@ -0,0 +1 @@
+/etc/stunnel/
index 3ef13592a04146e42e459207c8baa44cb1187396..fe7a567886198dda072c30316652c5865a6706fb 100644 (file)
@@ -1 +1,2 @@
+/etc/sysconfig/watchdog
 /etc/watchdog.conf
index adfba5489177320e2b1528223156a620089863bf..271dc41dacf52faf380ce53b74383e72af8f95ef 100644 (file)
@@ -353,7 +353,7 @@ sub iporsubtodec
        }
        #Subnet already in decimal and valid?
        if ($mask=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1<=255  && $2<=$1 && $3<=$2  && $4<=$3 )))       {
-               for (my $i=8;$i<=32;$i++){
+               for (my $i=0;$i<=32;$i++){
                        if (&General::cidrtosub($i) eq $mask){
                                if ($full == 0){return $mask;}else{
                                                         return $net."/".$mask;
@@ -362,7 +362,7 @@ sub iporsubtodec
                }       
        }
        #Subnet in binary format?
-       if ($mask=~/^(\d{1,2})$/ && (($1<=32 && $1>=8))){
+       if ($mask=~/^(\d{1,2})$/ && (($1<=32 && $1>=0))){
                        if($full == 0){ return &General::cidrtosub($mask);}else{
                                                 return $net."/".&General::cidrtosub($mask);
                        }
@@ -389,7 +389,7 @@ sub iporsubtocidr
        }
        #Subnet in decimal and valid?
        if ($mask=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1<=255  && $2<=$1 && $3<=$2  && $4<=$3 )))       {
-               for (my $i=8;$i<=32;$i++){
+               for (my $i=0;$i<=32;$i++){
                        if (&General::cidrtosub($i) eq $mask){
                                if ($full == 0){return &General::subtocidr($mask);}else{
                                                         return $net."/".&General::subtocidr($mask);
@@ -398,7 +398,7 @@ sub iporsubtocidr
                }       
        }
        #Subnet already in binary format?
-       if ($mask=~/^(\d{1,2})$/ && (($1<=32 && $1>=8))){
+       if ($mask=~/^(\d{1,2})$/ && (($1<=32 && $1>=0))){
                        if($full == 0){ return $mask;}else{
                                                 return $net."/".$mask;
                        }
@@ -488,13 +488,13 @@ sub validipandmask
        if ($ccdip=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1>0 && $1<=255 && $2>=0 && $2<=255 && $3>=0 && $3<=255 && $4<=255 ))) {
                #Subnet in decimal and valid?
                if ($ccdsubnet=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1<=255  && $2<=$1 && $3<=$2  && $4<=$3 )))  {
-                       for (my $i=8;$i<=32;$i++){
+                       for (my $i=0;$i<=32;$i++){
                                if (&General::cidrtosub($i) eq $ccdsubnet){
                                        return 1;
                                }
-                       }       
+                       }
                #Subnet already in binary format?
-               }elsif ($ccdsubnet=~/^(\d{1,2})$/ && (($1<=32 && $1>=8))){
+               }elsif ($ccdsubnet=~/^(\d{1,2})$/ && (($1<=32 && $1>=0))){
                        return 1;
                }else{
                        return 0;
index ebc82d55cc91433555d5bdff3b07909c59e41561..0c2527ca39e4bcaf0d02a5065db88279f0a1cae6 100644 (file)
@@ -8,6 +8,7 @@ mysql:x:41:41:MySQL Server:/dev/null:/bin/false
 ftp:x:45:45:anonymous_user:/home/ftp:/bin/false
 vsftpd:x:47:47:vsftpd User:/home/ftp:/bin/false
 rsyncd:x:48:48:rsyncd Daemon:/home/rsync:/bin/false
+stunnel:x:51:51:stunnel Daemon:/var/lib/stunnel:/bin/false
 sshd:x:74:74:sshd:/var/empty:/bin/false
 nobody:x:99:99:Nobody:/home/nobody:/bin/false
 postfix:x:100:100::/var/spool/postfix:/bin/false
index 2f9b74c4f9c2a3659e661bc2f621db399b616738..c917f8438491b243f2c99866b084fe4be301a26e 100755 (executable)
@@ -427,8 +427,8 @@ sub process_rules
                                $grp1='std_net_src';
                                $source='ORANGE';
                        }elsif ($configline[2] eq 'red') {
-                               $grp1='std_net_src';
-                               $source='IPFire';
+                               $grp1='ipfire_src';
+                               $source='RED1';
                                &General::readhash($fwdfwsettings,\%fwdsettings);
                                $fwdsettings{'POLICY1'}=$outsettings{'POLICY'};
                                $fwdsettings{'POLICY'}=$outsettings{'POLICY'};
@@ -538,7 +538,7 @@ sub process_rules
                my $chain;
                foreach my $protocol (@prot){
                        my $now=localtime;
-                       if ($source eq 'IPFire'){
+                       if ($source eq 'RED1'){
                                $chain='OUTGOINGFW';
                        }else{
                                $chain='FORWARDFW';
index 2c314d16e5d320fc0a6499669f722974e161979a..c0ddcb2d69ed96937c3f8e66cad08d8e17b8cd95 100755 (executable)
@@ -354,20 +354,21 @@ sub buildrules {
 
                                                # Destination NAT
                                                if ($NAT_MODE eq "DNAT") {
-                                                       # Make port-forwardings useable from the internal networks.
-                                                       my @internal_addresses = &fwlib::get_internal_firewall_ip_addresses(1);
-                                                       unless ($nat_address ~~ @internal_addresses) {
-                                                               &add_dnat_mangle_rules($nat_address, @options);
-                                                       }
-
                                                        my @nat_options = ();
                                                        if ($protocol ne "all") {
                                                                my @nat_protocol_options = &get_protocol_options($hash, $key, $protocol, 1);
                                                                push(@nat_options, @nat_protocol_options);
                                                        }
+                                                       push(@nat_options, @time_options);
+
+                                                       # Make port-forwardings useable from the internal networks.
+                                                       my @internal_addresses = &fwlib::get_internal_firewall_ip_addresses(1);
+                                                       unless ($nat_address ~~ @internal_addresses) {
+                                                               &add_dnat_mangle_rules($nat_address, @nat_options);
+                                                       }
+
                                                        push(@nat_options, @source_options);
                                                        push(@nat_options, ("-d", $nat_address));
-                                                       push(@nat_options, @time_options);
 
                                                        my $dnat_port;
                                                        if ($protocol_has_ports) {
index 5245a7f8ee6e540711ad14b7bdbd89b395dbfa07..2d9b11521af814fe75e7d2379fca085df32f6c27 100644 (file)
@@ -1934,6 +1934,7 @@ CONFIG_WLAN=y
 CONFIG_LIBERTAS_THINFIRM=m
 # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
 CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_UAP=m
 CONFIG_ATMEL=m
 CONFIG_PCI_ATMEL=m
 CONFIG_AT76C50X_USB=m
index dcd3b08f73f39de8de2d9651439d0c859ad22ca7..dcc177d3ecf9ac10b5da9c31cfbadb98fc399abb 100644 (file)
@@ -2141,6 +2141,7 @@ CONFIG_WLAN=y
 CONFIG_LIBERTAS_THINFIRM=m
 # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
 CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_UAP=m
 CONFIG_ATMEL=m
 CONFIG_PCI_ATMEL=m
 CONFIG_AT76C50X_USB=m
index a5266ec19222db846cec8eaef1855152f4f29300..0c9b3d20ecfcb2c50937e7cf7c6364c851c20921 100644 (file)
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.10.32 Kernel Configuration
+# Linux/arm 3.10.38 Kernel Configuration
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -681,6 +681,8 @@ CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
 CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LAYER7=m
+# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
@@ -699,8 +701,6 @@ CONFIG_NETFILTER_XT_MATCH_RECENT=m
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
 CONFIG_NETFILTER_XT_MATCH_SOCKET=m
 CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_LAYER7=m
-# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set
 CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
 CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
@@ -1530,6 +1530,7 @@ CONFIG_WLAN=y
 CONFIG_LIBERTAS_THINFIRM=m
 # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
 CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_UAP=m
 CONFIG_AT76C50X_USB=m
 CONFIG_USB_ZD1201=m
 CONFIG_USB_NET_RNDIS_WLAN=m
@@ -2956,11 +2957,13 @@ CONFIG_SND_BCM2708_SOC_I2S=m
 CONFIG_SND_BCM2708_SOC_HIFIBERRY_DAC=m
 CONFIG_SND_BCM2708_SOC_HIFIBERRY_DIGI=m
 CONFIG_SND_BCM2708_SOC_RPI_DAC=m
+# CONFIG_SND_BCM2708_SOC_IQAUDIO_DAC is not set
 CONFIG_SND_DESIGNWARE_I2S=m
 CONFIG_SND_SOC_I2C_AND_SPI=m
 # CONFIG_SND_SOC_ALL_CODECS is not set
 CONFIG_SND_SOC_PCM1794A=m
 CONFIG_SND_SOC_PCM5102A=m
+# CONFIG_SND_SOC_PCM512x is not set
 CONFIG_SND_SOC_WM8804=m
 CONFIG_SND_SIMPLE_CARD=m
 # CONFIG_SOUND_PRIME is not set
index a50a248c7320ca0627a9ee2afc5600ae7d577ed2..246e436ecbcabb1205adfb6f72a78a27cbc136ef 100644 (file)
@@ -2120,6 +2120,7 @@ CONFIG_WLAN=y
 CONFIG_LIBERTAS_THINFIRM=m
 # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
 CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_UAP=m
 CONFIG_AIRO=m
 CONFIG_ATMEL=m
 CONFIG_PCI_ATMEL=m
@@ -3052,37 +3053,37 @@ CONFIG_WATCHDOG_NOWAYOUT=y
 #
 CONFIG_SOFT_WATCHDOG=m
 CONFIG_RETU_WATCHDOG=m
-# CONFIG_ACQUIRE_WDT is not set
-# CONFIG_ADVANTECH_WDT is not set
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
 CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
 CONFIG_F71808E_WDT=m
 CONFIG_SP5100_TCO=m
 CONFIG_GEODE_WDT=m
-# CONFIG_SC520_WDT is not set
+CONFIG_SC520_WDT=m
 CONFIG_SBC_FITPC2_WATCHDOG=m
-# CONFIG_EUROTECH_WDT is not set
+CONFIG_EUROTECH_WDT=m
 CONFIG_IB700_WDT=m
 CONFIG_IBMASR=m
-# CONFIG_WAFER_WDT is not set
+CONFIG_WAFER_WDT=m
 CONFIG_I6300ESB_WDT=m
 CONFIG_IE6XX_WDT=m
 CONFIG_ITCO_WDT=m
-# CONFIG_ITCO_VENDOR_SUPPORT is not set
+CONFIG_ITCO_VENDOR_SUPPORT=y
 CONFIG_IT8712F_WDT=m
 CONFIG_IT87_WDT=m
 CONFIG_HP_WATCHDOG=m
 CONFIG_HPWDT_NMI_DECODING=y
-# CONFIG_SC1200_WDT is not set
-# CONFIG_SCx200_WDT is not set
-# CONFIG_PC87413_WDT is not set
+CONFIG_SC1200_WDT=m
+CONFIG_SCx200_WDT=m
+CONFIG_PC87413_WDT=m
 CONFIG_NV_TCO=m
-# CONFIG_60XX_WDT is not set
-# CONFIG_SBC8360_WDT is not set
-# CONFIG_SBC7240_WDT is not set
-# CONFIG_CPU5_WDT is not set
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
 CONFIG_SMSC_SCH311X_WDT=m
-# CONFIG_SMSC37B787_WDT is not set
+CONFIG_SMSC37B787_WDT=m
 CONFIG_VIA_WDT=m
 CONFIG_W83627HF_WDT=m
 CONFIG_W83697HF_WDT=m
@@ -3090,7 +3091,7 @@ CONFIG_W83697UG_WDT=m
 CONFIG_W83877F_WDT=m
 CONFIG_W83977F_WDT=m
 CONFIG_MACHZ_WDT=m
-# CONFIG_SBC_EPX_C3_WATCHDOG is not set
+CONFIG_SBC_EPX_C3_WATCHDOG=m
 
 #
 # ISA-based Watchdog Cards
index a116122acacc819d258df253826f7cb9727208ff..8dc185bca39b731609e8ba53f51c68d14fd27786 100644 (file)
@@ -2134,6 +2134,7 @@ CONFIG_WLAN=y
 CONFIG_LIBERTAS_THINFIRM=m
 # CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
 CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_UAP=m
 CONFIG_AIRO=m
 CONFIG_ATMEL=m
 CONFIG_PCI_ATMEL=m
@@ -3071,36 +3072,36 @@ CONFIG_WATCHDOG_NOWAYOUT=y
 #
 CONFIG_SOFT_WATCHDOG=m
 CONFIG_RETU_WATCHDOG=m
-# CONFIG_ACQUIRE_WDT is not set
-# CONFIG_ADVANTECH_WDT is not set
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
 CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
 CONFIG_F71808E_WDT=m
 CONFIG_SP5100_TCO=m
 CONFIG_GEODE_WDT=m
-# CONFIG_SC520_WDT is not set
+CONFIG_SC520_WDT=m
 CONFIG_SBC_FITPC2_WATCHDOG=m
-# CONFIG_EUROTECH_WDT is not set
+CONFIG_EUROTECH_WDT=m
 CONFIG_IB700_WDT=m
 CONFIG_IBMASR=m
-# CONFIG_WAFER_WDT is not set
+CONFIG_WAFER_WDT=m
 CONFIG_I6300ESB_WDT=m
 CONFIG_IE6XX_WDT=m
 CONFIG_ITCO_WDT=m
-# CONFIG_ITCO_VENDOR_SUPPORT is not set
+CONFIG_ITCO_VENDOR_SUPPORT=y
 CONFIG_IT8712F_WDT=m
 CONFIG_IT87_WDT=m
 CONFIG_HP_WATCHDOG=m
 CONFIG_HPWDT_NMI_DECODING=y
-# CONFIG_SC1200_WDT is not set
-# CONFIG_PC87413_WDT is not set
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
 CONFIG_NV_TCO=m
-# CONFIG_60XX_WDT is not set
-# CONFIG_SBC8360_WDT is not set
-# CONFIG_SBC7240_WDT is not set
-# CONFIG_CPU5_WDT is not set
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
 CONFIG_SMSC_SCH311X_WDT=m
-# CONFIG_SMSC37B787_WDT is not set
+CONFIG_SMSC37B787_WDT=m
 CONFIG_VIA_WDT=m
 CONFIG_W83627HF_WDT=m
 CONFIG_W83697HF_WDT=m
@@ -3108,7 +3109,7 @@ CONFIG_W83697UG_WDT=m
 CONFIG_W83877F_WDT=m
 CONFIG_W83977F_WDT=m
 CONFIG_MACHZ_WDT=m
-# CONFIG_SBC_EPX_C3_WATCHDOG is not set
+CONFIG_SBC_EPX_C3_WATCHDOG=m
 CONFIG_XEN_WDT=m
 
 #
index b78fc32d701c90c32008ec72fddc099b950b164f..8fa37fe07b27f8d42e8eb644d703ccb130dff58c 100644 (file)
@@ -1,6 +1,6 @@
 ENABLED=off
 ENABLED_BLUE=off
 ENABLED_ORANGE=off
-DDEST_PORT=1149
+DDEST_PORT=1194
 DPROTOCOL=udp
 VPN_IP=
index 4716b9726ec325f6e568b86dc433570c854bec5c..ecd01ec1e227d709da490582eb176eb57ebb0c8d 100644 (file)
@@ -115,6 +115,7 @@ etc/rc.d/init.d/squid
 etc/rc.d/init.d/sshd
 #etc/rc.d/init.d/sslh
 etc/rc.d/init.d/static-routes
+#etc/rc.d/init.d/stunnel
 etc/rc.d/init.d/swap
 etc/rc.d/init.d/sysctl
 etc/rc.d/init.d/sysklogd
index cb6858f77e149d2cccf21a51ab8c61ae62e4dbd8..9cb3057d06703e5351e0a17439d92bde524e344e 100644 (file)
@@ -1394,6 +1394,8 @@ lib/modules/KVER-ipfire-kirkwood
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas_tf
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas_uap
+#lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/libertas_uap/uap8xxx.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/mac80211_hwsim.ko
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/mwifiex
 #lib/modules/KVER-ipfire-kirkwood/kernel/drivers/net/wireless/mwifiex/mwifiex.ko
index 89107a3349916082f554708ebaa0ca792f751e4e..1fd840c95e0f0fea857aca51c17e2bf945ecd93a 100644 (file)
@@ -1356,6 +1356,8 @@ lib/modules/KVER-ipfire-multi
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_tf
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
+#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_uap
+#lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/libertas_uap/uap8xxx.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mac80211_hwsim.ko
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex
 #lib/modules/KVER-ipfire-multi/kernel/drivers/net/wireless/mwifiex/mwifiex.ko
index 98f513e9b09bc0ae86eac7b3e8e39c9dadee3db4..2ea9efe196523bb47d460b8a3ca7eafb57006b45 100644 (file)
@@ -1125,6 +1125,8 @@ lib/modules/KVER-ipfire-rpi
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas_tf
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas_uap
+#lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/libertas_uap/uap8xxx.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/mwifiex
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/mwifiex/mwifiex.ko
 #lib/modules/KVER-ipfire-rpi/kernel/drivers/net/wireless/mwifiex/mwifiex_sdio.ko
index 4467545ae53a3fe999e2582fb54f5981c72089ea..b8a9fd4acac2bc9737f0a459d11e28658af7c004 100644 (file)
@@ -21,7 +21,7 @@ usr/lib/daq
 #usr/lib/libdaq.la
 #usr/lib/libdaq.so
 usr/lib/libdaq.so.2
-usr/lib/libdaq.so.2.0.1
+usr/lib/libdaq.so.2.0.2
 #usr/lib/libdaq_static.a
 #usr/lib/libdaq_static.la
 #usr/lib/libdaq_static_modules.a
index 07a39f46350495efeb9ce8d6a3a8f0a267bc275b..b34ea9187c57b054c1a98e6b735d22957ff4dd43 100644 (file)
@@ -117,6 +117,7 @@ etc/rc.d/init.d/squid
 etc/rc.d/init.d/sshd
 #etc/rc.d/init.d/sslh
 etc/rc.d/init.d/static-routes
+#etc/rc.d/init.d/stunnel
 etc/rc.d/init.d/swap
 etc/rc.d/init.d/sysctl
 etc/rc.d/init.d/sysklogd
index daaa17645f5b9cfc38e660d844b3257b285faf4a..48bd9ced554d2b70ae75740e0ce88193275e84e6 100644 (file)
@@ -1299,9 +1299,6 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/misc/ics932s401.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d
 #lib/modules/KVER-ipfire/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko
-#lib/modules/KVER-ipfire/kernel/drivers/misc/mei
-#lib/modules/KVER-ipfire/kernel/drivers/misc/mei/mei-me.ko
-#lib/modules/KVER-ipfire/kernel/drivers/misc/mei/mei.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/pch_phub.ko
 #lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st
 #lib/modules/KVER-ipfire/kernel/drivers/misc/ti-st/st_drv.ko
@@ -1651,6 +1648,8 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_uap
+#lib/modules/KVER-ipfire/kernel/drivers/net/wireless/libertas_uap/uap8xxx.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mac80211_hwsim.ko
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex
 #lib/modules/KVER-ipfire/kernel/drivers/net/wireless/mwifiex/mwifiex.ko
@@ -2191,12 +2190,17 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/w1/slaves/w1_therm.ko
 #lib/modules/KVER-ipfire/kernel/drivers/w1/wire.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/acquirewdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/advantechwdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/alim1535_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/alim7101_wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/cpu5wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/eurotechwdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/f71808e_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/geodewdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/hpwdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/i6300esb.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/iTCO_vendor_support.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/iTCO_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/ib700wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/ibmasr.ko
@@ -2205,11 +2209,20 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/it87_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/machzwd.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/nv_tco.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/pc87413_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_pci.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/pcwd_usb.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/retu_wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc60xxwdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc7240_wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc8360.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc_epx_c3.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sc1200wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/sc520_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/sch311x_wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/scx200_wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/smsc37b787_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/softdog.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/sp5100_tco.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/via_wdt.ko
@@ -2218,6 +2231,7 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83697ug_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83877f_wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/w83977f_wdt.ko
+#lib/modules/KVER-ipfire/kernel/drivers/watchdog/wafer5823wdt.ko
 #lib/modules/KVER-ipfire/kernel/drivers/watchdog/wdt_pci.ko
 #lib/modules/KVER-ipfire/kernel/fs
 #lib/modules/KVER-ipfire/kernel/fs/btrfs
index 0c43b88be008a70aed3b4cc098ce0e5231b99de9..89cf5c844921b5230a663d6518381db95779498b 100644 (file)
@@ -1,6 +1,6 @@
 #sbin/extlinux
 #usr/bin/gethostip
-#usr/bin/isohybrid
+usr/bin/isohybrid
 #usr/bin/isohybrid.pl
 #usr/bin/keytab-lilo
 #usr/bin/lss16toppm
diff --git a/config/rootfiles/common/libsigc++ b/config/rootfiles/common/libsigc++
deleted file mode 100644 (file)
index a05b64b..0000000
+++ /dev/null
@@ -1,1368 +0,0 @@
-#usr/include/sigc++-2.0
-#usr/include/sigc++-2.0/sigc++
-#usr/include/sigc++-2.0/sigc++/adaptors
-#usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h
-#usr/include/sigc++-2.0/sigc++/adaptors/adaptors.h
-#usr/include/sigc++-2.0/sigc++/adaptors/bind.h
-#usr/include/sigc++-2.0/sigc++/adaptors/bind_return.h
-#usr/include/sigc++-2.0/sigc++/adaptors/bound_argument.h
-#usr/include/sigc++-2.0/sigc++/adaptors/compose.h
-#usr/include/sigc++-2.0/sigc++/adaptors/deduce_result_type.h
-#usr/include/sigc++-2.0/sigc++/adaptors/exception_catch.h
-#usr/include/sigc++-2.0/sigc++/adaptors/hide.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/base.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/group.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/lambda.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/base.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/group.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/lambda.cc.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/operator.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/select.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/operator.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/select.h
-#usr/include/sigc++-2.0/sigc++/adaptors/macros
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/adaptor_trait.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/bind.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/bind_return.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/compose.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/deduce_result_type.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/exception_catch.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/hide.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/retype.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/retype_return.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/retype.h
-#usr/include/sigc++-2.0/sigc++/adaptors/retype_return.h
-#usr/include/sigc++-2.0/sigc++/bind.h
-#usr/include/sigc++-2.0/sigc++/bind_return.h
-#usr/include/sigc++-2.0/sigc++/class_slot.h
-#usr/include/sigc++-2.0/sigc++/compatibility.h
-#usr/include/sigc++-2.0/sigc++/connection.h
-#usr/include/sigc++-2.0/sigc++/functors
-#usr/include/sigc++-2.0/sigc++/functors/functor_trait.h
-#usr/include/sigc++-2.0/sigc++/functors/functors.h
-#usr/include/sigc++-2.0/sigc++/functors/macros
-#usr/include/sigc++-2.0/sigc++/functors/macros/functor_trait.h.m4
-#usr/include/sigc++-2.0/sigc++/functors/macros/mem_fun.h.m4
-#usr/include/sigc++-2.0/sigc++/functors/macros/ptr_fun.h.m4
-#usr/include/sigc++-2.0/sigc++/functors/macros/slot.h.m4
-#usr/include/sigc++-2.0/sigc++/functors/mem_fun.h
-#usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h
-#usr/include/sigc++-2.0/sigc++/functors/slot.h
-#usr/include/sigc++-2.0/sigc++/functors/slot_base.h
-#usr/include/sigc++-2.0/sigc++/hide.h
-#usr/include/sigc++-2.0/sigc++/limit_reference.h
-#usr/include/sigc++-2.0/sigc++/macros
-#usr/include/sigc++-2.0/sigc++/macros/class_slot.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/hide.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/limit_reference.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/method_slot.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/object_slot.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/retype.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/signal.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/slot.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/template.macros.m4
-#usr/include/sigc++-2.0/sigc++/method_slot.h
-#usr/include/sigc++-2.0/sigc++/object.h
-#usr/include/sigc++-2.0/sigc++/object_slot.h
-#usr/include/sigc++-2.0/sigc++/reference_wrapper.h
-#usr/include/sigc++-2.0/sigc++/retype.h
-#usr/include/sigc++-2.0/sigc++/retype_return.h
-#usr/include/sigc++-2.0/sigc++/sigc++.h
-#usr/include/sigc++-2.0/sigc++/signal.h
-#usr/include/sigc++-2.0/sigc++/signal_base.h
-#usr/include/sigc++-2.0/sigc++/slot.h
-#usr/include/sigc++-2.0/sigc++/trackable.h
-#usr/include/sigc++-2.0/sigc++/type_traits.h
-#usr/include/sigc++-2.0/sigc++/visit_each.h
-#usr/lib/libsigc-2.0.a
-#usr/lib/libsigc-2.0.la
-#usr/lib/libsigc-2.0.so
-usr/lib/libsigc-2.0.so.0
-usr/lib/libsigc-2.0.so.0.0.0
-#usr/lib/pkgconfig/sigc++-2.0.pc
-#usr/lib/sigc++-2.0
-#usr/lib/sigc++-2.0/include
-#usr/lib/sigc++-2.0/include/sigc++config.h
-#usr/share/doc/libsigc-2.0
-#usr/share/doc/libsigc-2.0/docs
-#usr/share/doc/libsigc-2.0/docs/images
-#usr/share/doc/libsigc-2.0/docs/images/libsigc_logo.gif
-#usr/share/doc/libsigc-2.0/docs/images/top.gif
-#usr/share/doc/libsigc-2.0/docs/index.html
-#usr/share/doc/libsigc-2.0/docs/reference
-#usr/share/doc/libsigc-2.0/docs/reference/html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptor__trait_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2bind_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2bind__return_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2hide_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2retype_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2retype__return_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/annotated.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/base_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/bind_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/bind__return_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/bound__argument_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/class__slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classes.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classnil.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__limit__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__limit__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__limit__reference_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__limit__reference_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__limit__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__limit__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__limit__reference_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__limit__reference_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1limit__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1limit__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1limit__reference_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1limit__reference_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal_1_1accumulated-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal_1_1accumulated.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal_1_1accumulated__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot__base-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__limit__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__limit__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__limit__reference_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__limit__reference_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/compatibility_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/compose_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/connection_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/deduce__result__type_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/deprecated.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.css
-#usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/exception__catch_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/files.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x61.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x62.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x63.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x64.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x65.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x66.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x67.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x68.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x69.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x6c.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x6d.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x6e.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x6f.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x70.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x72.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x73.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x74.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x75.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x76.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x7e.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x62.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x63.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x64.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x65.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x66.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x68.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x69.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x6c.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x6d.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x6e.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x6f.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x70.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x72.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x73.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x74.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x75.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x76.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x7e.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_rela.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x63.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x64.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x65.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x66.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x67.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x69.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6c.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6f.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x70.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x72.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x73.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x74.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x76.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x61.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x62.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x63.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x64.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x65.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x66.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x67.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x69.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6c.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6f.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x70.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x72.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x73.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x74.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x76.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functor__trait_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functors_2slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functors_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_defs.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.dot
-#usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__adaptors.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__adaptors.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__bind.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__bind.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__compat.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__compose.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__compose.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__exception__catch.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__exception__catch.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__functors.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__functors.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__group__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__group__.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__hide.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__hide.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__lambdas.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__lambdas.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__mem__fun.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__mem__fun.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__ptr__fun.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__ptr__fun.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__retype.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__retype.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__signal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__slot.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__slot.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/hide_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/hierarchy.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/index.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__0.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__1.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__10.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__100.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__101.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__102.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__103.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__104.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__105.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__106.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__107.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__108.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__109.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__11.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__110.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__111.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__112.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__113.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__114.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__115.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__116.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__117.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__118.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__119.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__12.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__120.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__121.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__122.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__123.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__124.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__125.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__126.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__127.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__128.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__129.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__13.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__130.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__131.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__132.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__133.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__134.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__135.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__136.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__137.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__138.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__139.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__14.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__140.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__141.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__142.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__143.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__144.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__145.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__146.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__147.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__148.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__149.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__15.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__150.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__151.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__152.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__153.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__154.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__155.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__156.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__157.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__158.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__159.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__16.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__160.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__161.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__162.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__163.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__164.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__165.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__166.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__167.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__168.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__169.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__17.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__170.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__171.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__172.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__173.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__174.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__175.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__176.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__177.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__178.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__179.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__18.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__180.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__181.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__182.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__183.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__184.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__185.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__186.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__187.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__188.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__189.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__19.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__190.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__191.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__192.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__193.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__194.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__195.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__196.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__197.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__198.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__199.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__2.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__20.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__200.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__201.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__202.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__203.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__204.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__205.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__206.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__207.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__208.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__209.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__21.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__210.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__211.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__212.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__213.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__214.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__215.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__216.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__217.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__218.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__219.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__22.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__220.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__221.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__222.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__223.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__224.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__225.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__226.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__227.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__228.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__229.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__23.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__230.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__231.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__232.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__233.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__234.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__235.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__236.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__237.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__238.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__239.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__24.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__240.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__241.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__242.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__243.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__244.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__245.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__246.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__247.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__248.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__249.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__25.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__250.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__251.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__252.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__253.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__254.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__255.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__256.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__257.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__258.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__259.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__26.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__260.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__261.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__262.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__263.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__27.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__28.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__29.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__3.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__30.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__31.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__32.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__33.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__34.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__35.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__36.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__37.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__38.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__39.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__4.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__40.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__41.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__42.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__43.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__44.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__45.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__46.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__47.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__48.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__49.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__5.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__50.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__51.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__52.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__53.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__54.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__55.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__56.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__57.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__58.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__59.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__6.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__60.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__61.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__62.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__63.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__64.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__65.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__66.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__67.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__68.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__69.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__7.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__70.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__71.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__72.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__73.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__74.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__75.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__76.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__77.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__78.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__79.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__8.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__80.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__81.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__82.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__83.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__84.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__85.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__86.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__87.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__88.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__89.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__9.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__90.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__91.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__92.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__93.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__94.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__95.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__96.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__97.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__98.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__99.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherits.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/lambda_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/limit__reference_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/mem__fun_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/method__slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/modules.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespaceSigC.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x62.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x63.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x64.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x65.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x66.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x67.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x68.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6d.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6f.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x70.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x72.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x73.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x75.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x76.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x63.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x64.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x65.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x67.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x68.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6d.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6f.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x70.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x72.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x73.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x75.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x76.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_vars.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespaces.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacesigc.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacesigc_1_1internal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/object_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/object__slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/operator_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/pages.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/ptr__fun_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/reference__wrapper_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/retype_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/retype__return_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/select_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/sigc++_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/signal_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/signal__base_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/slot__base_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adapts-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adapts.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adapts__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1address.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1and__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1arithmetic.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1arithmetic__assign.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1assign.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bitwise.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bitwise__assign.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1cast__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1connection-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1connection.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1const__reference__wrapper-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1const__reference__wrapper.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5const_01_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5const_01_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5const_01_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5const_01_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1divides.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dynamic__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1equal__to.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__functor_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__functor_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)()_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)()_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)()_01const_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)()_01const_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)(T__arg1)_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)(T__arg1)_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)(T__arg1)_01const_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)(T__arg1_00_01T__arg2)_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)()_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)()_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)(T__arg1)_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)(T__arg1)_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)(T__arg1_00_01T__arg2)_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)(T__arg1_00_01T__arg2)_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1greater.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1greater__equal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01false_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01false_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01true_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01true_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1limit__derived__target-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1limit__derived__target.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1limit__derived__target_3_01T__target_01_5_00_01T__action_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1limit__derived__target_3_01T__target_01_5_00_01T__action_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0_3_01T__return_00_01nil_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0_3_01T__return_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0_3_01void_00_01nil_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0_3_01void_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1_3_01T__return_00_01T__arg1_00_01nil_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1_3_01T__return_00_01T__arg1_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1_3_01void_00_01T__arg1_00_01nil_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1_3_01void_00_01T__arg1_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit2_3_01T__return_00_01T__arg1_00_01T__arg2_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit2_3_01void_00_01T__arg1_00_01T__arg2_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__exec-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__exec.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__impl-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__impl.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__do__bind-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__do__bind.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__do__unbind-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__do__unbind.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__iterator__buf-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__iterator__buf.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__iterator__buf_3_01T__emitter_00_01void_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__iterator__buf_3_01T__emitter_00_01void_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__rep-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__rep.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__rep__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1temp__slot__list-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1temp__slot__list.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1trackable__callback-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1trackable__callback.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1trackable__callback__list-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1trackable__callback__list.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1typed__slot__rep-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1typed__slot__rep.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1typed__slot__rep__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type_3_01false_00_01T__type_00_01T__limit_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type_3_01false_00_01T__type_00_01T__limit_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type_3_01true_00_01T__type_00_01T__limit_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type_3_01true_00_01T__type_00_01T__limit_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type__pointer_3_01false_00_01T__type_00_01T__limit_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type__pointer_3_01false_00_01T__type_00_01T__limit_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type__pointer_3_01true_00_01T__type_00_01T__limit_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type__pointer_3_01true_00_01T__type_00_01T__limit_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1is__base__and__derived-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1is__base__and__derived.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1is__base__and__derived_3_01T__base_00_01T__base_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1is__base__and__derived_3_01T__base_00_01T__base_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01divides_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01divides_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01minus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01minus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01modulus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01modulus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01multiplies_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01multiplies_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01plus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01plus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01divides_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01divides_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01minus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01minus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01modulus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01modulus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01multiplies_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01multiplies_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01plus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01plus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01and___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01and___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01leftshift_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01leftshift_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01or___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01or___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01rightshift_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01rightshift_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01xor___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01xor___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01and___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01and___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01leftshift_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01leftshift_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01or___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01or___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01rightshift_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01rightshift_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01xor___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01xor___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01logical_3_01and___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01logical_3_01and___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01logical_3_01or___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01logical_3_01or___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01other_3_01assign_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01other_3_01assign_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01other_3_01subscript_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01other_3_01subscript_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01equal__to_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01equal__to_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01greater_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01greater_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01greater__equal_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01greater__equal_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01less_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01less_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01less__equal_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01less__equal_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01not__equal__to_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01not__equal__to_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01dynamic___01_4_00_01T__type_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01dynamic___01_4_00_01T__type_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01reinterpret___01_4_00_01T__type_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01static___01_4_00_01T__type_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01static___01_4_00_01T__type_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert__deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert__deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01negate_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01negate_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01pre__decrement_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01pre__decrement_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01pre__increment_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01pre__increment_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__bitwise_3_01not___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__bitwise_3_01not___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__logical_3_01not___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__logical_3_01not___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__other_3_01address_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__other_3_01address_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__other_3_01dereference_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__other_3_01dereference_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary__deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary__deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1leftshift.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1less.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1less__equal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1logical.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1minus.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1modulus.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1multiplies.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1negate.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1not__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1not__equal__to.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1or__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1other.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1plus.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1pre__decrement.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1pre__increment.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1reference__wrapper-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1reference__wrapper.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1reinterpret__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1relational.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1rightshift.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1signal__base-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1signal__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1signal__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__const__iterator-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__const__iterator.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__iterator-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__iterator.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__list-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__list.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1static__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1subscript.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1trackable-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1trackable.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1trackable__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01T__type[N]_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01T__type[N]_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01T__type_01_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01T__type_01_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01const_01T__type_01_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01const_01T__type_01_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01void_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01void_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unary__arithmetic.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unary__bitwise.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unary__logical.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unary__other.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__lambda__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__lambda__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__lambda__type_3_01lambda_3_01T__type_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__lambda__type_3_01lambda_3_01T__type_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference_3_01const__reference__wrapper_3_01T__type_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference_3_01const__reference__wrapper_3_01T__type_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference_3_01reference__wrapper_3_01T__type_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference_3_01reference__wrapper_3_01T__type_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1xor__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/tabs.css
-#usr/share/doc/libsigc-2.0/docs/reference/html/trackable_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/type__traits_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/visit__each_8h.html
-#usr/share/doc/libsigc-2.0/docs/tutorial
-#usr/share/doc/libsigc-2.0/docs/tutorial/html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch01.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch02.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch02s02.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch02s03.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch02s04.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch03.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch03s02.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch04.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch04s02.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch04s03.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch05.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/index.html
diff --git a/config/rootfiles/common/libtorrent b/config/rootfiles/common/libtorrent
deleted file mode 100644 (file)
index 7e249a1..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#usr/include/torrent
-#usr/include/torrent/bitfield.h
-#usr/include/torrent/chunk_manager.h
-#usr/include/torrent/common.h
-#usr/include/torrent/connection_manager.h
-#usr/include/torrent/data
-#usr/include/torrent/data/block.h
-#usr/include/torrent/data/block_list.h
-#usr/include/torrent/data/block_transfer.h
-#usr/include/torrent/data/file.h
-#usr/include/torrent/data/file_list.h
-#usr/include/torrent/data/file_list_iterator.h
-#usr/include/torrent/data/file_manager.h
-#usr/include/torrent/data/file_utils.h
-#usr/include/torrent/data/piece.h
-#usr/include/torrent/data/transfer_list.h
-#usr/include/torrent/download.h
-#usr/include/torrent/error.h
-#usr/include/torrent/event.h
-#usr/include/torrent/exceptions.h
-#usr/include/torrent/hash_string.h
-#usr/include/torrent/http.h
-#usr/include/torrent/object.h
-#usr/include/torrent/object_stream.h
-#usr/include/torrent/path.h
-#usr/include/torrent/peer
-#usr/include/torrent/peer/client_info.h
-#usr/include/torrent/peer/client_list.h
-#usr/include/torrent/peer/peer.h
-#usr/include/torrent/peer/peer_info.h
-#usr/include/torrent/peer/peer_list.h
-#usr/include/torrent/poll.h
-#usr/include/torrent/poll_epoll.h
-#usr/include/torrent/poll_kqueue.h
-#usr/include/torrent/poll_select.h
-#usr/include/torrent/rate.h
-#usr/include/torrent/resume.h
-#usr/include/torrent/torrent.h
-#usr/include/torrent/tracker.h
-#usr/include/torrent/tracker_list.h
-#usr/lib/libtorrent.la
-#usr/lib/libtorrent.so
-#usr/lib/libtorrent.so.11
-#usr/lib/libtorrent.so.11.0.6
-#usr/lib/pkgconfig/libtorrent.pc
-#usr/include/torrent/dht_manager.h
-#usr/include/torrent/peer/connection_list.h
-#usr/include/torrent/throttle.h
index e35838d03529277de64107427bf41a128a08e17f..706c5f8523ab72090771ccb169e8ee046f90802c 100644 (file)
@@ -30,7 +30,6 @@ usr/bin/u2spewfoo
 #usr/include/snort/dynamic_preproc/bitop.h
 #usr/include/snort/dynamic_preproc/cpuclock.h
 #usr/include/snort/dynamic_preproc/file_api.h
-#usr/include/snort/dynamic_preproc/file_lib.h
 #usr/include/snort/dynamic_preproc/idle_processing.h
 #usr/include/snort/dynamic_preproc/ipv6_port.h
 #usr/include/snort/dynamic_preproc/mempool.h
@@ -180,11 +179,14 @@ usr/sbin/snort
 #usr/share/doc/snort/README.dnp3
 #usr/share/doc/snort/README.dns
 #usr/share/doc/snort/README.event_queue
+#usr/share/doc/snort/README.file
+#usr/share/doc/snort/README.file_ips
 #usr/share/doc/snort/README.filters
 #usr/share/doc/snort/README.flowbits
 #usr/share/doc/snort/README.frag3
 #usr/share/doc/snort/README.ftptelnet
 #usr/share/doc/snort/README.gre
+#usr/share/doc/snort/README.ha
 #usr/share/doc/snort/README.http_inspect
 #usr/share/doc/snort/README.imap
 #usr/share/doc/snort/README.ipip
index 05ecef02a22f23c55abc376eb601d172b24b345c..6d7bb0de466b4aa9545a6563e1d450bcb94db7ec 100644 (file)
@@ -58,6 +58,7 @@ etc/strongswan.d/charon/updown.conf
 etc/strongswan.d/charon/x509.conf
 etc/strongswan.d/charon/xauth-eap.conf
 etc/strongswan.d/charon/xauth-generic.conf
+etc/strongswan.d/charon/xauth-noauth.conf
 etc/strongswan.d/charon/xcbc.conf
 etc/strongswan.d/starter.conf
 etc/strongswan.d/tools.conf
@@ -134,6 +135,7 @@ usr/lib/ipsec/plugins/libstrongswan-updown.so
 usr/lib/ipsec/plugins/libstrongswan-x509.so
 usr/lib/ipsec/plugins/libstrongswan-xauth-eap.so
 usr/lib/ipsec/plugins/libstrongswan-xauth-generic.so
+usr/lib/ipsec/plugins/libstrongswan-xauth-noauth.so
 usr/lib/ipsec/plugins/libstrongswan-xcbc.so
 #usr/libexec/ipsec
 usr/libexec/ipsec/_copyright
@@ -212,6 +214,7 @@ usr/sbin/ipsec
 #usr/share/strongswan/templates/config/plugins/x509.conf
 #usr/share/strongswan/templates/config/plugins/xauth-eap.conf
 #usr/share/strongswan/templates/config/plugins/xauth-generic.conf
+#usr/share/strongswan/templates/config/plugins/xauth-noauth.conf
 #usr/share/strongswan/templates/config/plugins/xcbc.conf
 #usr/share/strongswan/templates/config/strongswan.conf
 #usr/share/strongswan/templates/config/strongswan.d
index 6948694ccab605aaf0fa3bdd7c80e08be299ad89..70160f57e3f036bbb9b1385169e58f49b9a8af34 100644 (file)
@@ -43,6 +43,7 @@ usr/share/usb_modeswitch/05c6:6503
 usr/share/usb_modeswitch/05c6:9024
 usr/share/usb_modeswitch/05c6:f000
 usr/share/usb_modeswitch/05c7:1000
+usr/share/usb_modeswitch/0685:2000
 usr/share/usb_modeswitch/072f:100d
 usr/share/usb_modeswitch/07d1:a800
 usr/share/usb_modeswitch/07d1:a804
@@ -174,6 +175,8 @@ usr/share/usb_modeswitch/12d1:1553
 usr/share/usb_modeswitch/12d1:1557
 usr/share/usb_modeswitch/12d1:155b
 usr/share/usb_modeswitch/12d1:156a
+usr/share/usb_modeswitch/12d1:157c
+usr/share/usb_modeswitch/12d1:157d
 usr/share/usb_modeswitch/12d1:1805
 usr/share/usb_modeswitch/12d1:1c0b
 usr/share/usb_modeswitch/12d1:1c1b
@@ -188,6 +191,10 @@ usr/share/usb_modeswitch/12d1:1f16
 usr/share/usb_modeswitch/12d1:1f17
 usr/share/usb_modeswitch/12d1:1f18
 usr/share/usb_modeswitch/12d1:1f19
+usr/share/usb_modeswitch/12d1:1f1b
+usr/share/usb_modeswitch/12d1:1f1c
+usr/share/usb_modeswitch/12d1:1f1d
+usr/share/usb_modeswitch/12d1:1f1e
 usr/share/usb_modeswitch/12d1:380b
 usr/share/usb_modeswitch/1307:1169
 usr/share/usb_modeswitch/1410:5010
@@ -228,25 +235,34 @@ usr/share/usb_modeswitch/19d2:0166
 usr/share/usb_modeswitch/19d2:0169
 usr/share/usb_modeswitch/19d2:0266
 usr/share/usb_modeswitch/19d2:0304
+usr/share/usb_modeswitch/19d2:0318
 usr/share/usb_modeswitch/19d2:0325
 usr/share/usb_modeswitch/19d2:1001
 usr/share/usb_modeswitch/19d2:1007
 usr/share/usb_modeswitch/19d2:1009
 usr/share/usb_modeswitch/19d2:1013
 usr/share/usb_modeswitch/19d2:1017
+usr/share/usb_modeswitch/19d2:1030
 usr/share/usb_modeswitch/19d2:1171
 usr/share/usb_modeswitch/19d2:1175
 usr/share/usb_modeswitch/19d2:1179
 usr/share/usb_modeswitch/19d2:1201
+usr/share/usb_modeswitch/19d2:1207
+usr/share/usb_modeswitch/19d2:1210
 usr/share/usb_modeswitch/19d2:1216
+usr/share/usb_modeswitch/19d2:1219
 usr/share/usb_modeswitch/19d2:1224
 usr/share/usb_modeswitch/19d2:1225
 usr/share/usb_modeswitch/19d2:1227
+usr/share/usb_modeswitch/19d2:1233
+usr/share/usb_modeswitch/19d2:1238
+usr/share/usb_modeswitch/19d2:1511
 usr/share/usb_modeswitch/19d2:1514
 usr/share/usb_modeswitch/19d2:1517
 usr/share/usb_modeswitch/19d2:1520
 usr/share/usb_modeswitch/19d2:1523
 usr/share/usb_modeswitch/19d2:1528
+usr/share/usb_modeswitch/19d2:1536
 usr/share/usb_modeswitch/19d2:1542
 usr/share/usb_modeswitch/19d2:2000
 usr/share/usb_modeswitch/19d2:2004
diff --git a/config/rootfiles/core/77/filelists/GeoIP b/config/rootfiles/core/77/filelists/GeoIP
new file mode 100644 (file)
index 0000000..0258236
--- /dev/null
@@ -0,0 +1 @@
+usr/local/share/GeoIP/GeoIP.dat
index ea71ac4b57d9e023d2c088a507954e3041c54f92..dd35042c160d36616b8f670b206dc898188029d0 100644 (file)
@@ -20,6 +20,7 @@ srv/web/ipfire/html/themes/ipfire
 srv/web/ipfire/html/themes/ipfire-legacy
 srv/web/ipfire/html/themes/maniac
 usr/lib/firewall
+usr/local/bin/backupiso
 usr/local/bin/timezone-transition
 usr/local/bin/setddns.pl
 usr/sbin/updxlrator
@@ -31,3 +32,4 @@ var/ipfire/header.pl
 var/ipfire/graphs.pl
 var/ipfire/langs
 var/ipfire/menu.d/10-system.menu
+var/ipfire/menu.d/20-status.menu
diff --git a/config/rootfiles/core/77/filelists/hwdata b/config/rootfiles/core/77/filelists/hwdata
new file mode 100644 (file)
index 0000000..5a9672f
--- /dev/null
@@ -0,0 +1,2 @@
+usr/share/hwdata/pci.ids
+usr/share/hwdata/usb.ids
index 0078abd941d985be4e9ad33303208896af60e47a..e9cf7700451c60663a3706753bfa601f0d76344e 100644 (file)
@@ -399,13 +399,17 @@ if [ -e /var/ipfire/qos/enable ]; then
        /usr/local/bin/qosctrl start
 fi
 
+chown cron:cron /var/spool/cron
 # Update crontab
-cat <<EOF >> /var/spool/cron/root.orig
+grep -q timezone-transition /var/spool/cron/root.orig || cat <<EOF >> /var/spool/cron/root.orig
 
 # Re-read firewall rules every Sunday in March, October and November to take care of daylight saving time
 00 3 * 3 0          /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl
 00 2 * 10-11 0      /usr/local/bin/timezone-transition /usr/local/bin/firewallctrl
 EOF
+
+# Remove dialctrl script.
+sed -i /var/spool/cron/root.orig -e "/Dialup/,/dialctrl.pl/d"
 fcrontab -z &>/dev/null
 
 
diff --git a/config/rootfiles/core/78/exclude b/config/rootfiles/core/78/exclude
new file mode 100644 (file)
index 0000000..18e9b4d
--- /dev/null
@@ -0,0 +1,20 @@
+boot/config.txt
+etc/collectd.custom
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+etc/localtime
+etc/shadow
+etc/ssh/ssh_config
+etc/ssh/sshd_config
+etc/ssl/openssl.cnf
+etc/sudoers
+etc/sysconfig/firewall.local
+etc/sysconfig/rc.local
+etc/udev/rules.d/30-persistent-network.rules
+srv/web/ipfire/html/proxy.pac
+var/ipfire/ovpn
+var/log/cache
+var/state/dhcp/dhcpd.leases
+var/updatecache
diff --git a/config/rootfiles/core/78/filelists/armv5tel/linux-kirkwood b/config/rootfiles/core/78/filelists/armv5tel/linux-kirkwood
new file mode 120000 (symlink)
index 0000000..7217107
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/linux-kirkwood
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/armv5tel/linux-multi b/config/rootfiles/core/78/filelists/armv5tel/linux-multi
new file mode 120000 (symlink)
index 0000000..204eb4c
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/linux-multi
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/armv5tel/linux-rpi b/config/rootfiles/core/78/filelists/armv5tel/linux-rpi
new file mode 120000 (symlink)
index 0000000..a651a49
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/armv5tel/linux-rpi
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/daq b/config/rootfiles/core/78/filelists/daq
new file mode 120000 (symlink)
index 0000000..d0e0956
--- /dev/null
@@ -0,0 +1 @@
+../../../common/daq
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/files b/config/rootfiles/core/78/filelists/files
new file mode 100644 (file)
index 0000000..15c629b
--- /dev/null
@@ -0,0 +1,16 @@
+etc/system-release
+etc/issue
+srv/web/ipfire/cgi-bin/ddns.cgi
+srv/web/ipfire/cgi-bin/ids.cgi
+srv/web/ipfire/cgi-bin/logs.cgi/firewalllogcountry.dat
+srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromcountry.dat
+srv/web/ipfire/cgi-bin/modem-status.cgi
+srv/web/ipfire/cgi-bin/ovpnmain.cgi
+srv/web/ipfire/cgi-bin/proxy.cgi
+srv/web/ipfire/html/themes/ipfire/include/functions.pl
+usr/local/bin/setddns.pl
+var/ipfire/langs
+var/ipfire/menu.d/20-status.menu
+var/ipfire/menu.d/70-log.menu
+var/ipfire/modem-lib.pl
+var/ipfire/ovpn/openssl/ovpn.cnf
diff --git a/config/rootfiles/core/78/filelists/i586/grub b/config/rootfiles/core/78/filelists/i586/grub
new file mode 120000 (symlink)
index 0000000..feb236a
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/grub
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/i586/linux b/config/rootfiles/core/78/filelists/i586/linux
new file mode 120000 (symlink)
index 0000000..693ec4b
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/linux
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/i586/syslinux b/config/rootfiles/core/78/filelists/i586/syslinux
new file mode 120000 (symlink)
index 0000000..74a776d
--- /dev/null
@@ -0,0 +1 @@
+../../../../common/i586/syslinux
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/openvpn b/config/rootfiles/core/78/filelists/openvpn
new file mode 120000 (symlink)
index 0000000..493f3f7
--- /dev/null
@@ -0,0 +1 @@
+../../../common/openvpn
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/ppp b/config/rootfiles/core/78/filelists/ppp
new file mode 120000 (symlink)
index 0000000..4844a9b
--- /dev/null
@@ -0,0 +1 @@
+../../../common/ppp
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/snort b/config/rootfiles/core/78/filelists/snort
new file mode 120000 (symlink)
index 0000000..9406ce0
--- /dev/null
@@ -0,0 +1 @@
+../../../common/snort
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/squid b/config/rootfiles/core/78/filelists/squid
new file mode 120000 (symlink)
index 0000000..2dc8372
--- /dev/null
@@ -0,0 +1 @@
+../../../common/squid
\ No newline at end of file
diff --git a/config/rootfiles/core/78/filelists/vnstat b/config/rootfiles/core/78/filelists/vnstat
new file mode 120000 (symlink)
index 0000000..2e2e610
--- /dev/null
@@ -0,0 +1 @@
+../../../common/vnstat
\ No newline at end of file
diff --git a/config/rootfiles/core/78/update.sh b/config/rootfiles/core/78/update.sh
new file mode 100644 (file)
index 0000000..cb9af9f
--- /dev/null
@@ -0,0 +1,292 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 3 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2014 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
+
+function add_to_backup ()
+{
+       # Add path to ROOTFILES but remove old entries to prevent double
+       # files in the tar
+       grep -v "^$1" /opt/pakfire/tmp/ROOTFILES > /opt/pakfire/tmp/ROOTFILES.tmp
+       mv /opt/pakfire/tmp/ROOTFILES.tmp /opt/pakfire/tmp/ROOTFILES
+       echo $1 >> /opt/pakfire/tmp/ROOTFILES
+}
+
+#
+# Remove old core updates from pakfire cache to save space...
+core=78
+for (( i=1; i<=${core}; i++ ))
+do
+       rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
+done
+
+#
+# Do some sanity checks.
+case $(uname -r) in
+       *-ipfire-versatile )
+               /usr/bin/logger -p syslog.emerg -t ipfire \
+                       "core-update-${core}: ERROR cannot update. versatile support is dropped."
+               # Report no error to pakfire. So it does not try to install it again.
+               exit 0
+               ;;
+       *-ipfire-xen )
+               BOOTSIZE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f2 | tail -n 1`
+               if [ $BOOTSIZE -lt 28000 ]; then
+                       /usr/bin/logger -p syslog.emerg -t ipfire \
+                               "core-update-${core}: ERROR cannot update because not enough space on boot."
+                       exit 2
+               fi
+               ;;
+       *-ipfire* )
+               # Ok.
+               ;;
+       * )
+               /usr/bin/logger -p syslog.emerg -t ipfire \
+                       "core-update-${core}: ERROR cannot update. No IPFire Kernel."
+               exit 1
+       ;;
+esac
+
+
+#
+#
+KVER="xxxKVERxxx"
+MOUNT=`grep "kernel" /boot/grub/grub.conf 2>/dev/null | tail -n 1 `
+# Nur den letzten Parameter verwenden
+echo $MOUNT > /dev/null
+MOUNT=$_
+if [ ! $MOUNT == "rw" ]; then
+       MOUNT="ro"
+fi
+
+#
+# check if we the backup file already exist
+if [ -e /var/ipfire/backup/core-upgrade${core}_${KVER}.tar.xz ]; then
+    echo Moving backup to backup-old ...
+    mv -f /var/ipfire/backup/core-upgrade${core}_${KVER}.tar.xz \
+       /var/ipfire/backup/core-upgrade${core}_${KVER}-old.tar.xz
+fi
+echo First we made a backup of all files that was inside of the
+echo update archive. This may take a while ...
+# Add some files that are not in the package to backup
+add_to_backup lib/modules
+add_to_backup boot
+
+# Backup the files
+tar cJvf /var/ipfire/backup/core-upgrade${core}_${KVER}.tar.xz \
+    -C / -T /opt/pakfire/tmp/ROOTFILES --exclude='#*' --exclude='/var/cache' > /dev/null 2>&1
+
+# Check diskspace on root
+ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
+
+if [ $ROOTSPACE -lt 100000 ]; then
+       /usr/bin/logger -p syslog.emerg -t ipfire \
+               "core-update-${core}: ERROR cannot update because not enough free space on root."
+       exit 2
+fi
+
+
+echo
+echo Update Kernel to $KVER ...
+#
+# Remove old kernel, configs, initrd, modules ...
+#
+rm -rf /boot/System.map-*
+rm -rf /boot/config-*
+rm -rf /boot/ipfirerd-*
+rm -rf /boot/vmlinuz-*
+rm -rf /boot/uImage-ipfire-*
+rm -rf /boot/uInit-ipfire-*
+rm -rf /lib/modules
+
+case $(uname -m) in
+       i?86 )
+               #
+               # Backup grub.conf
+               #
+               cp -vf /boot/grub/grub.conf /boot/grub/grub.conf.org
+       ;;
+esac
+#
+#Stop services
+/etc/init.d/snort stop
+/etc/init.d/squid stop
+/etc/init.d/ipsec stop
+/etc/init.d/apache stop
+
+# rename /etc/modprobe.d files
+for i in $(find /etc/modprobe.d/* | grep -v ".conf"); do
+       mv $i $i.conf
+done
+
+#
+#Extract files
+tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p --numeric-owner -C /
+
+# Check diskspace on boot
+BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
+
+if [ $BOOTSPACE -lt 1000 ]; then
+       case $(uname -r) in
+               *-ipfire-kirkwood )
+                       # Special handling for old kirkwood images.
+                       # (install only kirkwood kernel)
+                       rm -rf /boot/*
+                       tar xavf /opt/pakfire/tmp/files* --no-overwrite-dir -p \
+                               --numeric-owner -C / --wildcards 'boot/*-kirkwood*'
+                       ;;
+               * )
+                       /usr/bin/logger -p syslog.emerg -t ipfire \
+                               "core-update-${core}: FATAL-ERROR space run out on boot. System is not bootable..."
+                       /etc/init.d/apache start
+                       exit 4
+                       ;;
+       esac
+fi
+
+
+# Update Language cache
+perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
+
+#
+# Start services
+#
+/etc/init.d/apache start
+/etc/init.d/squid start
+/etc/init.d/snort start
+if [ `grep "ENABLED=on" /var/ipfire/vpn/settings` ]; then
+       /etc/init.d/ipsec start
+fi
+
+case $(uname -m) in
+       i?86 )
+               #
+               # Modify grub.conf
+               #
+               echo
+               echo Update grub configuration ...
+               ROOT=`mount | grep " / " | cut -d" " -f1`
+
+               if [ ! -z $ROOT ]; then
+                       ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2`
+               fi
+
+               if [ ! -z $ROOTUUID ]; then
+                       sed -i "s|ROOT|UUID=$ROOTUUID|g" /boot/grub/grub.conf
+               else
+                       sed -i "s|ROOT|$ROOT|g" /boot/grub/grub.conf
+               fi
+               sed -i "s|KVER|$KVER|g" /boot/grub/grub.conf
+               sed -i "s|MOUNT|$MOUNT|g" /boot/grub/grub.conf
+
+               if [ "$(grep "^serial" /boot/grub/grub.conf.org)" == "" ]; then
+                       echo "grub use default console ..."
+               else
+                       echo "grub use serial console ..."
+                       sed -i -e "s|splashimage|#splashimage|g" /boot/grub/grub.conf
+                       sed -i -e "s|#serial|serial|g" /boot/grub/grub.conf
+                       sed -i -e "s|#terminal|terminal|g" /boot/grub/grub.conf
+                       sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" /boot/grub/grub.conf
+               fi
+
+               #
+               # ReInstall grub
+               #
+                       echo "(hd0) ${ROOT::`expr length $ROOT`-1}" > /boot/grub/device.map
+                       grub-install --no-floppy ${ROOT::`expr length $ROOT`-1}
+       ;;
+esac
+
+
+# Force (re)install pae kernel if pae is supported
+rm -rf /opt/pakfire/db/*/meta-linux-pae
+if [ ! "$(grep "^flags.* pae " /proc/cpuinfo)" == "" ]; then
+       ROOTSPACE=`df / -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
+       BOOTSPACE=`df /boot -Pk | sed "s| * | |g" | cut -d" " -f4 | tail -n 1`
+       if [ $BOOTSPACE -lt 12000 -o $ROOTSPACE -lt 90000 ]; then
+               /usr/bin/logger -p syslog.emerg -t ipfire \
+                       "core-update-${core}: WARNING not enough space for pae kernel."
+       else
+               echo "Name: linux-pae" > /opt/pakfire/db/installed/meta-linux-pae
+               echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-pae
+               echo "Release: 0"     >> /opt/pakfire/db/installed/meta-linux-pae
+               echo "Name: linux-pae" > /opt/pakfire/db/meta/meta-linux-pae
+               echo "ProgVersion: 0" >> /opt/pakfire/db/meta/meta-linux-pae
+               echo "Release: 0"     >> /opt/pakfire/db/meta/meta-linux-pae
+       fi
+fi
+
+# Force reinstall xen kernel if it was installed
+if [ -e "/opt/pakfire/db/installed/meta-linux-xen" ]; then
+       echo "Name: linux-xen" > /opt/pakfire/db/installed/meta-linux-xen
+       echo "ProgVersion: 0" >> /opt/pakfire/db/installed/meta-linux-xen
+       echo "Release: 0"     >> /opt/pakfire/db/installed/meta-linux-xen
+       echo "Name: linux-xen" > /opt/pakfire/db/meta/meta-linux-xen
+       echo "ProgVersion: 0" >> /opt/pakfire/db/meta/meta-linux-xen
+       echo "Release: 0"     >> /opt/pakfire/db/meta/meta-linux-xen
+       # Add xvc0 to /etc/securetty
+       echo "xvc0" >> /etc/securetty
+fi
+
+#
+# After pakfire has ended run it again and update the lists and do upgrade
+#
+echo '#!/bin/bash'                                        >  /tmp/pak_update
+echo 'while [ "$(ps -A | grep " update.sh")" != "" ]; do' >> /tmp/pak_update
+echo '    sleep 1'                                        >> /tmp/pak_update
+echo 'done'                                               >> /tmp/pak_update
+echo 'while [ "$(ps -A | grep " pakfire")" != "" ]; do'   >> /tmp/pak_update
+echo '    sleep 1'                                        >> /tmp/pak_update
+echo 'done'                                               >> /tmp/pak_update
+echo '/opt/pakfire/pakfire update -y --force'             >> /tmp/pak_update
+echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
+echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
+echo '/opt/pakfire/pakfire upgrade -y'                    >> /tmp/pak_update
+echo '/usr/bin/logger -p syslog.emerg -t ipfire "Core-upgrade finished. If you use a customized grub.cfg"' >> /tmp/pak_update
+echo '/usr/bin/logger -p syslog.emerg -t ipfire "Check it before reboot !!!"' >> /tmp/pak_update
+echo '/usr/bin/logger -p syslog.emerg -t ipfire " *** Please reboot... *** "' >> /tmp/pak_update
+echo 'touch /var/run/need_reboot ' >> /tmp/pak_update
+#
+killall -KILL pak_update
+chmod +x /tmp/pak_update
+/tmp/pak_update &
+
+sync
+
+#
+#Finish
+(
+       /etc/init.d/fireinfo start
+       sendprofile
+) >/dev/null 2>&1 &
+
+# Update Package list for addon installation
+/opt/pakfire/pakfire update -y --force
+
+echo
+echo Please wait until pakfire has ended...
+echo
+#Don't report the exitcode last command
+exit 0
+
diff --git a/config/rootfiles/oldcore/75/meta b/config/rootfiles/oldcore/75/meta
new file mode 100644 (file)
index 0000000..d547fa8
--- /dev/null
@@ -0,0 +1 @@
+DEPS=""
index 885af45fc19bd3db5dfa4c04dcf30e9f32d5f97a..e27eba6e5923888fb1a4e1f216f17bbc298535d8 100644 (file)
@@ -4,21 +4,22 @@ usr/bin/clamconf
 usr/bin/clamdscan
 usr/bin/clamdtop
 usr/bin/clamscan
+usr/bin/clamsubmit
 usr/bin/freshclam
 usr/bin/sigtool
 #usr/include/clamav.h
 #usr/lib/libclamav.la
 usr/lib/libclamav.so
 usr/lib/libclamav.so.6
-usr/lib/libclamav.so.6.1.20
+usr/lib/libclamav.so.6.1.22
 #usr/lib/libclamunrar.la
 usr/lib/libclamunrar.so
 usr/lib/libclamunrar.so.6
-usr/lib/libclamunrar.so.6.1.20
+usr/lib/libclamunrar.so.6.1.22
 #usr/lib/libclamunrar_iface.la
 usr/lib/libclamunrar_iface.so
 usr/lib/libclamunrar_iface.so.6
-usr/lib/libclamunrar_iface.so.6.1.20
+usr/lib/libclamunrar_iface.so.6.1.22
 #usr/lib/pkgconfig/libclamav.pc
 usr/sbin/clamd
 usr/share/clamav
@@ -27,6 +28,7 @@ usr/share/clamav
 #usr/share/man/man1/clamdscan.1
 #usr/share/man/man1/clamdtop.1
 #usr/share/man/man1/clamscan.1
+#usr/share/man/man1/clamsubmit.1
 #usr/share/man/man1/freshclam.1
 #usr/share/man/man1/sigtool.1
 #usr/share/man/man5/clamav-milter.conf.5
index 242bc968dd4e1fb405aad14427dd52aa6241f950..eaaa3e589e6c6fdd1e74d4425ce99f8fb10f3689 100644 (file)
@@ -1295,9 +1295,6 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ics932s401.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/lis3lv02d/lis3lv02d.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/mei
-#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/mei/mei-me.ko
-#lib/modules/KVER-ipfire-pae/kernel/drivers/misc/mei/mei.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/pch_phub.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st
 #lib/modules/KVER-ipfire-pae/kernel/drivers/misc/ti-st/st_drv.ko
@@ -1647,6 +1644,8 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_uap
+#lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/libertas_uap/uap8xxx.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mac80211_hwsim.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex
 #lib/modules/KVER-ipfire-pae/kernel/drivers/net/wireless/mwifiex/mwifiex.ko
@@ -2192,12 +2191,17 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/slaves/w1_therm.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/w1/wire.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/acquirewdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/advantechwdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/alim1535_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/alim7101_wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/cpu5wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/eurotechwdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/f71808e_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/geodewdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/hpwdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/i6300esb.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/iTCO_vendor_support.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/iTCO_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/ib700wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/ibmasr.ko
@@ -2206,11 +2210,19 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/it87_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/machzwd.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/nv_tco.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pc87413_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_pci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/pcwd_usb.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/retu_wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc60xxwdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc7240_wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc8360.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc_epx_c3.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sc1200wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sc520_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sch311x_wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/smsc37b787_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/softdog.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/sp5100_tco.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/via_wdt.ko
@@ -2219,6 +2231,7 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83697ug_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83877f_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/w83977f_wdt.ko
+#lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wafer5823wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/wdt_pci.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/watchdog/xen_wdt.ko
 #lib/modules/KVER-ipfire-pae/kernel/drivers/xen
index 53935f0f21fa19b29d5197177afa44d7bc674589..4e6167e0d6a0fbef39a2c06058da53dd358d9423 100644 (file)
@@ -6,8 +6,10 @@ etc/nut/upsd.users.sample
 etc/nut/upsmon.conf.sample
 etc/nut/upssched.conf.sample
 etc/udev/rules.d/52-nut-usbups.rules
+usr/bin/al175
 usr/bin/apcsmart
 usr/bin/apcsmart-old
+usr/bin/apcupsd-ups
 usr/bin/bcmxcp
 usr/bin/bcmxcp_usb
 usr/bin/belkin
@@ -34,14 +36,18 @@ usr/bin/metasys
 usr/bin/mge-shut
 usr/bin/mge-utalk
 usr/bin/microdowell
-usr/bin/newmge-shut
 usr/bin/nut-scanner
+usr/bin/nutdrv_atcl_usb
+usr/bin/nutdrv_qx
+usr/bin/oldmge-shut
 usr/bin/oneac
 usr/bin/optiups
 usr/bin/powercom
 usr/bin/powerpanel
 usr/bin/rhino
 usr/bin/richcomm_usb
+usr/bin/riello_ser
+usr/bin/riello_usb
 usr/bin/safenet
 usr/bin/skel
 usr/bin/snmp-ups
@@ -52,14 +58,16 @@ usr/bin/tripplitesu
 usr/bin/upsc
 usr/bin/upscmd
 usr/bin/upscode2
-usr/bin/upsdrvctl
 usr/bin/upslog
 usr/bin/upsrw
 usr/bin/upssched-cmd
 usr/bin/usbhid-ups
 usr/bin/victronups
-#usr/cgi-bin
-#usr/html
+#usr/lib/libnutclient.a
+#usr/lib/libnutclient.la
+usr/lib/libnutclient.so
+usr/lib/libnutclient.so.0
+usr/lib/libnutclient.so.0.0.0
 #usr/lib/libnutscan.a
 #usr/lib/libnutscan.la
 usr/lib/libnutscan.so
@@ -68,9 +76,10 @@ usr/lib/libnutscan.so.1.0.0
 #usr/lib/libupsclient.a
 #usr/lib/libupsclient.la
 usr/lib/libupsclient.so
-usr/lib/libupsclient.so.1
-usr/lib/libupsclient.so.1.1.0
+usr/lib/libupsclient.so.4
+usr/lib/libupsclient.so.4.0.0
 usr/sbin/upsd
+usr/sbin/upsdrvctl
 usr/sbin/upsmon
 usr/sbin/upssched
 usr/share/cmdvartab
@@ -81,8 +90,10 @@ usr/share/driver.list
 #usr/share/man/man5/upsd.users.5
 #usr/share/man/man5/upsmon.conf.5
 #usr/share/man/man5/upssched.conf.5
+#usr/share/man/man8/al175.8
 #usr/share/man/man8/apcsmart-old.8
 #usr/share/man/man8/apcsmart.8
+#usr/share/man/man8/apcupsd-ups.8
 #usr/share/man/man8/bcmxcp.8
 #usr/share/man/man8/bcmxcp_usb.8
 #usr/share/man/man8/belkin.8
@@ -91,7 +102,8 @@ usr/share/driver.list
 #usr/share/man/man8/bestfortress.8
 #usr/share/man/man8/bestuferrups.8
 #usr/share/man/man8/bestups.8
-#usr/share/man/man8/blazer.8
+#usr/share/man/man8/blazer_ser.8
+#usr/share/man/man8/blazer_usb.8
 #usr/share/man/man8/clone.8
 #usr/share/man/man8/dummy-ups.8
 #usr/share/man/man8/etapro.8
@@ -107,7 +119,10 @@ usr/share/driver.list
 #usr/share/man/man8/mge-shut.8
 #usr/share/man/man8/mge-utalk.8
 #usr/share/man/man8/microdowell.8
+#usr/share/man/man8/nut-recorder.8
 #usr/share/man/man8/nut-scanner.8
+#usr/share/man/man8/nutdrv_atcl_usb.8
+#usr/share/man/man8/nutdrv_qx.8
 #usr/share/man/man8/nutupsdrv.8
 #usr/share/man/man8/oneac.8
 #usr/share/man/man8/optiups.8
@@ -115,6 +130,8 @@ usr/share/driver.list
 #usr/share/man/man8/powerpanel.8
 #usr/share/man/man8/rhino.8
 #usr/share/man/man8/richcomm_usb.8
+#usr/share/man/man8/riello_ser.8
+#usr/share/man/man8/riello_usb.8
 #usr/share/man/man8/safenet.8
 #usr/share/man/man8/snmp-ups.8
 #usr/share/man/man8/solis.8
index a935172a73d93effb7646cc3473d5e25b4fa89c7..02f3d41b9c40d8609eac8504c2b1baca911ba4c2 100644 (file)
@@ -1,7 +1,4 @@
 etc/rc.d/init.d/pound
-etc/rc.d/rc0.d/K40pound
-etc/rc.d/rc3.d/S60pound
-etc/rc.d/rc6.d/K40pound
 #etc/pound.cfg
 usr/sbin/pound
 usr/sbin/poundctl
diff --git a/config/rootfiles/packages/rtorrent b/config/rootfiles/packages/rtorrent
deleted file mode 100644 (file)
index 93709f4..0000000
+++ /dev/null
@@ -1,1372 +0,0 @@
-# THIS INCLUDES ligsigc++ and libtorrent
-usr/bin/rtorrent
-#usr/share/man/man1/rtorrent.1
-#usr/include/torrent
-#usr/include/torrent/bitfield.h
-#usr/include/torrent/chunk_manager.h
-#usr/include/torrent/common.h
-#usr/include/torrent/connection_manager.h
-#usr/include/torrent/data
-#usr/include/torrent/data/block.h
-#usr/include/torrent/data/block_list.h
-#usr/include/torrent/data/block_transfer.h
-#usr/include/torrent/data/file.h
-#usr/include/torrent/data/file_list.h
-#usr/include/torrent/data/file_list_iterator.h
-#usr/include/torrent/data/file_manager.h
-#usr/include/torrent/data/file_utils.h
-#usr/include/torrent/data/piece.h
-#usr/include/torrent/data/transfer_list.h
-#usr/include/torrent/download.h
-#usr/include/torrent/error.h
-#usr/include/torrent/event.h
-#usr/include/torrent/exceptions.h
-#usr/include/torrent/hash_string.h
-#usr/include/torrent/http.h
-#usr/include/torrent/object.h
-#usr/include/torrent/object_stream.h
-#usr/include/torrent/path.h
-#usr/include/torrent/peer
-#usr/include/torrent/peer/client_info.h
-#usr/include/torrent/peer/client_list.h
-#usr/include/torrent/peer/peer.h
-#usr/include/torrent/peer/peer_info.h
-#usr/include/torrent/peer/peer_list.h
-#usr/include/torrent/poll.h
-#usr/include/torrent/poll_epoll.h
-#usr/include/torrent/poll_kqueue.h
-#usr/include/torrent/poll_select.h
-#usr/include/torrent/rate.h
-#usr/include/torrent/resume.h
-#usr/include/torrent/torrent.h
-#usr/include/torrent/tracker.h
-#usr/include/torrent/tracker_list.h
-#usr/lib/libtorrent.la
-usr/lib/libtorrent.so
-usr/lib/libtorrent.so.11
-usr/lib/libtorrent.so.11.0.6
-#usr/lib/pkgconfig/libtorrent.pc
-#usr/include/sigc++-2.0
-#usr/include/sigc++-2.0/sigc++
-#usr/include/sigc++-2.0/sigc++/adaptors
-#usr/include/sigc++-2.0/sigc++/adaptors/adaptor_trait.h
-#usr/include/sigc++-2.0/sigc++/adaptors/adaptors.h
-#usr/include/sigc++-2.0/sigc++/adaptors/bind.h
-#usr/include/sigc++-2.0/sigc++/adaptors/bind_return.h
-#usr/include/sigc++-2.0/sigc++/adaptors/bound_argument.h
-#usr/include/sigc++-2.0/sigc++/adaptors/compose.h
-#usr/include/sigc++-2.0/sigc++/adaptors/deduce_result_type.h
-#usr/include/sigc++-2.0/sigc++/adaptors/exception_catch.h
-#usr/include/sigc++-2.0/sigc++/adaptors/hide.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/base.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/group.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/lambda.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/base.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/group.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/lambda.cc.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/operator.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/macros/select.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/operator.h
-#usr/include/sigc++-2.0/sigc++/adaptors/lambda/select.h
-#usr/include/sigc++-2.0/sigc++/adaptors/macros
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/adaptor_trait.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/bind.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/bind_return.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/compose.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/deduce_result_type.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/exception_catch.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/hide.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/retype.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/macros/retype_return.h.m4
-#usr/include/sigc++-2.0/sigc++/adaptors/retype.h
-#usr/include/sigc++-2.0/sigc++/adaptors/retype_return.h
-#usr/include/sigc++-2.0/sigc++/bind.h
-#usr/include/sigc++-2.0/sigc++/bind_return.h
-#usr/include/sigc++-2.0/sigc++/class_slot.h
-#usr/include/sigc++-2.0/sigc++/compatibility.h
-#usr/include/sigc++-2.0/sigc++/connection.h
-#usr/include/sigc++-2.0/sigc++/functors
-#usr/include/sigc++-2.0/sigc++/functors/functor_trait.h
-#usr/include/sigc++-2.0/sigc++/functors/functors.h
-#usr/include/sigc++-2.0/sigc++/functors/macros
-#usr/include/sigc++-2.0/sigc++/functors/macros/functor_trait.h.m4
-#usr/include/sigc++-2.0/sigc++/functors/macros/mem_fun.h.m4
-#usr/include/sigc++-2.0/sigc++/functors/macros/ptr_fun.h.m4
-#usr/include/sigc++-2.0/sigc++/functors/macros/slot.h.m4
-#usr/include/sigc++-2.0/sigc++/functors/mem_fun.h
-#usr/include/sigc++-2.0/sigc++/functors/ptr_fun.h
-#usr/include/sigc++-2.0/sigc++/functors/slot.h
-#usr/include/sigc++-2.0/sigc++/functors/slot_base.h
-#usr/include/sigc++-2.0/sigc++/hide.h
-#usr/include/sigc++-2.0/sigc++/limit_reference.h
-#usr/include/sigc++-2.0/sigc++/macros
-#usr/include/sigc++-2.0/sigc++/macros/class_slot.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/hide.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/limit_reference.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/method_slot.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/object_slot.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/retype.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/signal.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/slot.h.m4
-#usr/include/sigc++-2.0/sigc++/macros/template.macros.m4
-#usr/include/sigc++-2.0/sigc++/method_slot.h
-#usr/include/sigc++-2.0/sigc++/object.h
-#usr/include/sigc++-2.0/sigc++/object_slot.h
-#usr/include/sigc++-2.0/sigc++/reference_wrapper.h
-#usr/include/sigc++-2.0/sigc++/retype.h
-#usr/include/sigc++-2.0/sigc++/retype_return.h
-#usr/include/sigc++-2.0/sigc++/sigc++.h
-#usr/include/sigc++-2.0/sigc++/signal.h
-#usr/include/sigc++-2.0/sigc++/signal_base.h
-#usr/include/sigc++-2.0/sigc++/slot.h
-#usr/include/sigc++-2.0/sigc++/trackable.h
-#usr/include/sigc++-2.0/sigc++/type_traits.h
-#usr/include/sigc++-2.0/sigc++/visit_each.h
-#usr/lib/libsigc-2.0.a
-#usr/lib/libsigc-2.0.la
-usr/lib/libsigc-2.0.so
-usr/lib/libsigc-2.0.so.0
-usr/lib/libsigc-2.0.so.0.0.0
-#usr/lib/pkgconfig/sigc++-2.0.pc
-#usr/lib/sigc++-2.0
-#usr/lib/sigc++-2.0/include
-#usr/lib/sigc++-2.0/include/sigc++config.h
-#usr/share/doc/libsigc-2.0
-#usr/share/doc/libsigc-2.0/docs
-#usr/share/doc/libsigc-2.0/docs/images
-#usr/share/doc/libsigc-2.0/docs/images/libsigc_logo.gif
-#usr/share/doc/libsigc-2.0/docs/images/top.gif
-#usr/share/doc/libsigc-2.0/docs/index.html
-#usr/share/doc/libsigc-2.0/docs/reference
-#usr/share/doc/libsigc-2.0/docs/reference/html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptor__trait_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2bind_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2bind__return_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2hide_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2retype_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_2retype__return_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/adaptors_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/annotated.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/base_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/bind_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/bind__return_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/bound__argument_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Signal7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classSigC_1_1Slot7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/class__slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classes.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01reference__wrapper_3_01T__wrapped_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__const__volatile__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__volatile__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__limit__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__limit__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__limit__reference_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__limit__reference_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__limit__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__limit__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__limit__reference_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__limit__reference_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1const__volatile__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1limit__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1limit__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1limit__reference_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1limit__reference_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1pointer__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal_1_1accumulated-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal_1_1accumulated.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal_1_1accumulated__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1signal__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot__base-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1slot__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__limit__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__limit__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__limit__reference_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__limit__reference_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor0__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1volatile__mem__functor7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/compatibility_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/compose_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/connection_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/deduce__result__type_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/deprecated.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dirs.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.css
-#usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/exception__catch_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/files.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x61.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x62.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x63.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x64.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x65.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x66.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x67.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x68.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x69.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x6c.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x6d.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x6e.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x6f.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x70.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x72.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x73.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x74.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x75.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x76.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_0x7e.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x62.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x63.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x64.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x65.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x66.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x68.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x69.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x6c.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x6d.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x6e.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x6f.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x70.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x72.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x73.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x74.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x75.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x76.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x7e.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_rela.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functor__trait_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functors_2slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/functors_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_defs.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_func.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_vars.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.dot
-#usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__adaptors.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__adaptors.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__bind.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__bind.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__compat.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__compose.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__compose.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__exception__catch.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__exception__catch.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__functors.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__functors.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__group__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__group__.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__hide.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__hide.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__lambdas.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__lambdas.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__mem__fun.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__mem__fun.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__ptr__fun.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__ptr__fun.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__retype.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__retype.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__signal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__slot.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/group__slot.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/hide_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/hierarchy.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/index.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__0.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__1.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__10.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__100.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__101.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__102.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__103.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__104.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__105.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__106.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__107.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__108.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__109.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__11.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__110.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__111.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__112.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__113.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__114.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__115.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__116.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__117.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__118.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__119.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__12.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__120.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__121.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__122.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__123.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__124.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__125.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__126.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__127.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__128.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__129.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__13.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__130.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__131.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__132.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__133.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__134.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__135.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__136.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__137.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__138.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__139.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__14.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__140.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__141.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__142.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__143.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__144.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__145.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__146.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__147.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__148.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__149.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__15.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__150.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__151.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__152.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__153.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__154.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__155.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__156.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__157.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__158.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__159.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__16.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__160.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__161.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__162.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__163.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__164.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__165.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__166.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__167.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__168.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__169.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__17.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__170.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__171.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__172.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__173.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__174.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__175.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__176.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__177.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__178.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__179.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__18.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__180.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__181.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__182.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__183.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__184.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__185.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__186.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__187.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__188.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__189.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__19.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__190.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__191.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__192.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__193.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__194.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__195.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__196.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__197.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__198.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__199.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__2.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__20.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__200.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__201.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__202.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__203.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__204.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__205.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__206.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__207.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__208.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__209.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__21.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__210.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__211.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__212.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__213.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__214.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__215.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__216.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__217.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__218.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__219.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__22.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__220.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__221.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__222.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__223.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__224.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__225.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__226.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__227.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__228.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__229.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__23.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__230.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__231.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__232.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__233.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__234.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__235.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__236.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__237.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__238.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__239.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__24.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__240.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__241.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__242.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__243.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__244.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__245.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__246.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__247.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__248.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__249.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__25.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__250.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__251.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__252.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__253.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__254.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__255.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__256.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__257.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__258.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__259.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__26.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__260.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__261.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__262.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__27.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__28.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__29.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__3.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__30.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__31.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__32.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__33.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__34.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__35.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__36.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__37.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__38.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__39.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__4.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__40.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__41.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__42.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__43.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__44.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__45.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__46.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__47.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__48.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__49.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__5.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__50.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__51.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__52.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__53.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__54.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__55.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__56.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__57.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__58.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__59.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__6.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__60.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__61.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__62.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__63.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__64.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__65.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__66.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__67.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__68.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__69.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__7.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__70.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__71.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__72.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__73.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__74.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__75.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__76.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__77.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__78.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__79.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__8.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__80.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__81.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__82.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__83.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__84.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__85.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__86.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__87.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__88.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__89.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__9.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__90.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__91.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__92.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__93.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__94.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__95.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__96.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__97.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__98.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__99.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/inherits.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/lambda_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/limit__reference_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/mem__fun_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/method__slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/modules.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespaceSigC.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_vars.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespaces.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacesigc.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/namespacesigc_1_1internal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/object_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/object__slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/operator_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/pages.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/ptr__fun_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/reference__wrapper_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/retype_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/retype__return_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/select_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/sigc++_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/signal_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/signal__base_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/slot_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/slot__base_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structSigC_1_1retype__slot__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adaptor__trait_3_01T__functor_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adapts-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adapts.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1adapts__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1address.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1and__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1arithmetic.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1arithmetic__assign.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1assign.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bind__return__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bitwise.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1bitwise__assign.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1cast__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose1__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1compose2__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1connection-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1connection.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1const__reference__wrapper-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1const__reference__wrapper.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5const_01_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01T__type_01_5const_01_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5const_01_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dereference__trait_3_01const_01T__type_01_5const_01_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1divides.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1dynamic__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1equal__to.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor_3_01T__functor_00_01T__catcher_00_01void_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1exception__catch__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__functor_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__functor_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)()_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)()_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)()_01const_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)()_01const_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)(T__arg1)_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)(T__arg1)_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)(T__arg1)_01const_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(T__obj_1_1_5)(T__arg1_00_01T__arg2)_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)()_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)()_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)(T__arg1)_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)(T__arg1)_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)(T__arg1_00_01T__arg2)_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1functor__trait_3_01T__return(_5)(T__arg1_00_01T__arg2)_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1greater.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1greater__equal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3-1_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_010_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_011_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_012_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_013_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_014_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_015_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1hide__functor_3_016_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01false_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01false_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01false_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01false_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01true_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01true_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01true_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__core_3_01T__type_00_01true_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select5__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select6__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1lambda__select7__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1limit__derived__target-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1limit__derived__target.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1limit__derived__target_3_01T__target_01_5_00_01T__action_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1limit__derived__target_3_01T__target_01_5_00_01T__action_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0_3_01T__return_00_01nil_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0_3_01T__return_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0_3_01void_00_01nil_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit0_3_01void_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1_3_01T__return_00_01T__arg1_00_01nil_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1_3_01T__return_00_01T__arg1_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1_3_01void_00_01T__arg1_00_01nil_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit1_3_01void_00_01T__arg1_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit2_3_01T__return_00_01T__arg1_00_01T__arg2_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit2_3_01void_00_01T__arg1_00_01T__arg2_00_01nil_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__emit7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__exec-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__exec.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__impl-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1signal__impl.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call0-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call0.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call5-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call5.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call6-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call6.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call7-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__call7.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__do__bind-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__do__bind.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__do__unbind-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__do__unbind.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__iterator__buf-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__iterator__buf.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__iterator__buf_3_01T__emitter_00_01void_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__iterator__buf_3_01T__emitter_00_01void_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__rep-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__rep.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1slot__rep__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1temp__slot__list-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1temp__slot__list.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1trackable__callback-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1trackable__callback.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1trackable__callback__list-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1trackable__callback__list.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1typed__slot__rep-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1typed__slot__rep.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1typed__slot__rep__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type_3_01false_00_01T__type_00_01T__limit_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type_3_01false_00_01T__type_00_01T__limit_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type_3_01true_00_01T__type_00_01T__limit_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type_3_01true_00_01T__type_00_01T__limit_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type__pointer_3_01false_00_01T__type_00_01T__limit_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type__pointer_3_01false_00_01T__type_00_01T__limit_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type__pointer_3_01true_00_01T__type_00_01T__limit_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1internal_1_1with__type__pointer_3_01true_00_01T__type_00_01T__limit_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1is__base__and__derived-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1is__base__and__derived.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1is__base__and__derived_3_01T__base_00_01T__base_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1is__base__and__derived_3_01T__base_00_01T__base_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01divides_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01divides_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01minus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01minus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01modulus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01modulus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01multiplies_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01multiplies_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01plus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic_3_01plus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01divides_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01divides_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01minus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01minus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01modulus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01modulus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01multiplies_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01multiplies_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01plus_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01arithmetic__assign_3_01plus_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01and___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01and___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01leftshift_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01leftshift_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01or___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01or___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01rightshift_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01rightshift_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01xor___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise_3_01xor___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01and___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01and___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01leftshift_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01leftshift_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01or___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01or___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01rightshift_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01rightshift_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01xor___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01bitwise__assign_3_01xor___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01logical_3_01and___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01logical_3_01and___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01logical_3_01or___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01logical_3_01or___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01other_3_01assign_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01other_3_01assign_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01other_3_01subscript_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01other_3_01subscript_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01equal__to_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01equal__to_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01greater_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01greater_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01greater__equal_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01greater__equal_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01less_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01less_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01less__equal_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01less__equal_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01not__equal__to_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action_3_01relational_3_01not__equal__to_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01dynamic___01_4_00_01T__type_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01dynamic___01_4_00_01T__type_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01reinterpret___01_4_00_01T__type_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01static___01_4_00_01T__type_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert_3_01cast___3_01static___01_4_00_01T__type_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert__deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__convert__deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01negate_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01negate_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01pre__decrement_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01pre__decrement_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01pre__increment_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__arithmetic_3_01pre__increment_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__bitwise_3_01not___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__bitwise_3_01not___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__logical_3_01not___01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__logical_3_01not___01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__other_3_01address_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__other_3_01address_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__other_3_01dereference_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary_3_01unary__other_3_01dereference_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary__deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__action__unary__deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group1__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group2__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__group3__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__convert__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1lambda__operator__unary__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1leftshift.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1less.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1less__equal.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1logical.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1minus.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1modulus.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1multiplies.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1negate.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1not__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1not__equal__to.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1or__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1other.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1plus.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1pre__decrement.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1pre__increment.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1reference__wrapper-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1reference__wrapper.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1reinterpret__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1relational.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_1_1deduce__result__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4_1_1deduce__result__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor_3_01void_00_01T__functor_01_4__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1retype__return__functor__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1rightshift.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1signal__base-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1signal__base.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1signal__base__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__const__iterator-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__const__iterator.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__iterator-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__iterator.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__list-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1slot__list.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1static__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1subscript.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1trackable-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1trackable.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1trackable__inherit__graph.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01T__type[N]_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01T__type[N]_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01T__type_01_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01T__type_01_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01const_01T__type_01_6_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01const_01T__type_01_6_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01void_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1type__trait_3_01void_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unary__arithmetic.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unary__bitwise.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unary__logical.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unary__other.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__lambda__type-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__lambda__type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__lambda__type_3_01lambda_3_01T__type_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__lambda__type_3_01lambda_3_01T__type_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference_3_01const__reference__wrapper_3_01T__type_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference_3_01const__reference__wrapper_3_01T__type_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference_3_01reference__wrapper_3_01T__type_01_4_01_4-members.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1unwrap__reference_3_01reference__wrapper_3_01T__type_01_4_01_4.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/structsigc_1_1xor__.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/tabs.css
-#usr/share/doc/libsigc-2.0/docs/reference/html/trackable_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/type__traits_8h.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/visit__each_8h.html
-#usr/share/doc/libsigc-2.0/docs/tutorial
-#usr/share/doc/libsigc-2.0/docs/tutorial/html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch01.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch02.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch02s02.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch02s03.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch02s04.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch03.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch03s02.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch04.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch04s02.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch04s03.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/ch05.html
-#usr/share/doc/libsigc-2.0/docs/tutorial/html/index.html
diff --git a/config/rootfiles/packages/sslscan b/config/rootfiles/packages/sslscan
new file mode 100644 (file)
index 0000000..603c36e
--- /dev/null
@@ -0,0 +1,2 @@
+usr/bin/sslscan
+#usr/share/man/man1/sslscan.1
diff --git a/config/rootfiles/packages/stunnel b/config/rootfiles/packages/stunnel
new file mode 100644 (file)
index 0000000..eaf7fce
--- /dev/null
@@ -0,0 +1,41 @@
+etc/rc.d/init.d/stunnel
+etc/stunnel
+etc/stunnel/stunnel.conf
+#etc/stunnel/stunnel.conf-sample
+usr/bin/stunnel
+#usr/bin/stunnel3
+#usr/lib/stunnel
+#usr/lib/stunnel/libstunnel.la
+usr/lib/stunnel/libstunnel.so
+#usr/share/doc/stunnel
+#usr/share/doc/stunnel/AUTHORS
+#usr/share/doc/stunnel/BUGS
+#usr/share/doc/stunnel/COPYING
+#usr/share/doc/stunnel/COPYRIGHT.GPL
+#usr/share/doc/stunnel/CREDITS
+#usr/share/doc/stunnel/ChangeLog
+#usr/share/doc/stunnel/INSTALL
+#usr/share/doc/stunnel/INSTALL.FIPS
+#usr/share/doc/stunnel/INSTALL.W32
+#usr/share/doc/stunnel/INSTALL.WCE
+#usr/share/doc/stunnel/PORTS
+#usr/share/doc/stunnel/README
+#usr/share/doc/stunnel/TODO
+#usr/share/doc/stunnel/examples
+#usr/share/doc/stunnel/examples/ca.html
+#usr/share/doc/stunnel/examples/ca.pl
+#usr/share/doc/stunnel/examples/importCA.html
+#usr/share/doc/stunnel/examples/importCA.sh
+#usr/share/doc/stunnel/examples/script.sh
+#usr/share/doc/stunnel/examples/stunnel.init
+#usr/share/doc/stunnel/examples/stunnel.service
+#usr/share/doc/stunnel/examples/stunnel.spec
+#usr/share/doc/stunnel/stunnel.fr.html
+#usr/share/doc/stunnel/stunnel.html
+#usr/share/doc/stunnel/stunnel.pl.html
+#usr/share/man/man8/stunnel.8
+#usr/share/man/man8/stunnel.fr.8
+#usr/share/man/man8/stunnel.pl.8
+var/ipfire/backup/addons/includes/stunnel
+var/lib/stunnel
+var/lib/stunnel/run
diff --git a/config/stunnel/stunnel.conf b/config/stunnel/stunnel.conf
new file mode 100644 (file)
index 0000000..b172200
--- /dev/null
@@ -0,0 +1,21 @@
+; File: /etc/stunnel/stunnel.conf
+
+; Note: The pid and output locations are relative to the chroot location.
+
+pid    = /run/stunnel.pid
+chroot = /var/lib/stunnel
+client = no
+setuid = stunnel
+setgid = stunnel
+cert   = /etc/stunnel/stunnel.pem
+
+;debug = 7
+;output = stunnel.log
+
+;[https]
+;accept  = 443
+;connect = 80
+;; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SSL
+;; Microsoft implementations do not use SSL close-notify alert and thus
+;; they are vulnerable to truncation attacks
+;TIMEOUTclose = 0
index c08045037e994d308b9d2ddb5732abdd405721c3..1a2a004b4b594f8580af4d0b2636d81d4aa67483 100644 (file)
@@ -27,15 +27,16 @@ KERN_TYPE=pae
 KVER=xxxKVERxxx
 KERN_PACK=xxxKERN_PACKxxx
 KRNDOWN=http://mirror0.ipfire.org/pakfire2/$VERSION/paks
-
+CONSOLE=hvc0
 ###############################################################################
 # If you really want to use  outdated legacy kernel uncomment this lines. #####
 # Not recommended!!! ##########################################################
 ######################
 #KERN_TYPE=xen
 #KVER=2.6.32.61
-#KERN_PACK=28
+#KERN_PACK=29
 #KRNDOWN=http://mirror0.ipfire.org/pakfire2/2.15/paks
+#CONSOLE=xvc0
 ###############################################################################
 
 SIZEboot=64
@@ -108,10 +109,10 @@ mount -o loop $IMGvar $MNThdd/var
 
 # Install IPFire without kernel modules
 tar -C $MNThdd/ -xvf $ISODIR/$SNAME-$VERSION.tlz --lzma \
-       --exclude=lib/modules* --exclude=boot*
+       --exclude=lib/modules* --exclude=boot* --numeric-owner
 
 #Install Kernel
-tar -C $MNThdd/opt/pakfire/tmp -xvf $TMPDIR/$KERNEL
+tar -C $MNThdd/opt/pakfire/tmp -xvf $TMPDIR/$KERNEL --numeric-owner
 chroot $MNThdd /opt/pakfire/tmp/install.sh
 rm -rf $MNThdd/opt/pakfire/tmp/*
 
@@ -120,7 +121,7 @@ mkdir $MNThdd/boot/grub
 echo "timeout 10"                          > $MNThdd/boot/grub/grub.conf
 echo "default 0"                          >> $MNThdd/boot/grub/grub.conf
 echo "title IPFire ($KERN_TYPE-kernel)"   >> $MNThdd/boot/grub/grub.conf
-echo "  kernel /vmlinuz-$KVER-ipfire-xen root=/dev/xvda3 rootdelay=10 panic=10 console=xvc0 ro" \
+echo "  kernel /vmlinuz-$KVER-ipfire-$KERN_TYPE root=/dev/xvda3 rootdelay=10 panic=10 console=$CONSOLE ro" \
                                          >> $MNThdd/boot/grub/grub.conf
 echo "  initrd /ipfirerd-$KVER-$KERN_TYPE.img" >> $MNThdd/boot/grub/grub.conf
 echo "# savedefault 0" >> $MNThdd/boot/grub/grub.conf
@@ -161,12 +162,12 @@ rm -rf $MNThdd/etc/rc.d/rcsysinit.d/S19checkfstab
 #Remove console init
 rm -rf $MNThdd/etc/rc.d/rcsysinit.d/S70console
 
-#Add xvc0 to securetty
-echo xvc0 >> $MNThdd/etc/securetty
+#Add console to securetty
+echo $CONSOLE >> $MNThdd/etc/securetty
 
-#Add getty for xvc0
+#Add getty for console
 echo "#Enable login for XEN" >> $MNThdd/etc/inittab
-echo "8:2345:respawn:/sbin/agetty xvc0 9600 --noclear" >> $MNThdd/etc/inittab
+echo "8:2345:respawn:/sbin/agetty $CONSOLE 9600 --noclear" >> $MNThdd/etc/inittab
 
 #Disable some initskripts
 echo "#!/bin/sh" > $MNThdd/etc/rc.d/init.d/setclock
index 8dbfc9088b15d898d73511c2c59b4a265f9b6552..2140296c7d4b3dd4947918b1cb2da104d2b1ebd5 100644 (file)
@@ -1,4 +1,3 @@
-WARNING: translation string unused: Client status and controlc
 WARNING: translation string unused: ConnSched scheduler
 WARNING: translation string unused: ConnSched select profile
 WARNING: translation string unused: HDD temperature
@@ -226,6 +225,14 @@ WARNING: translation string unused: fwdfw std network
 WARNING: translation string unused: fwdfw till
 WARNING: translation string unused: fwdfw time
 WARNING: translation string unused: fwdfw xt access
+WARNING: translation string unused: fwhost Custom Host
+WARNING: translation string unused: fwhost Custom Network
+WARNING: translation string unused: fwhost IpSec Host
+WARNING: translation string unused: fwhost IpSec Network
+WARNING: translation string unused: fwhost OpenVPN N-2-N
+WARNING: translation string unused: fwhost OpenVPN static host
+WARNING: translation string unused: fwhost OpenVPN static network
+WARNING: translation string unused: fwhost Standard Network
 WARNING: translation string unused: fwhost attention
 WARNING: translation string unused: fwhost blue
 WARNING: translation string unused: fwhost changeremark
@@ -356,6 +363,7 @@ WARNING: translation string unused: network time
 WARNING: translation string unused: network traffic graphs
 WARNING: translation string unused: network updated
 WARNING: translation string unused: networks settings
+WARNING: translation string unused: never
 WARNING: translation string unused: new optionsfw must boot
 WARNING: translation string unused: no alcatelusb firmware
 WARNING: translation string unused: no cfg upload
@@ -402,7 +410,10 @@ WARNING: translation string unused: outgoing firewall warning
 WARNING: translation string unused: override mtu
 WARNING: translation string unused: ovpn config
 WARNING: translation string unused: ovpn dl
+WARNING: translation string unused: ovpn engines
 WARNING: translation string unused: ovpn log
+WARNING: translation string unused: ovpn reneg sec
+WARNING: translation string unused: ovpn_fastio
 WARNING: translation string unused: ovpn_fragment
 WARNING: translation string unused: ovpn_mssfix
 WARNING: translation string unused: ovpn_mtudisc
@@ -448,16 +459,12 @@ WARNING: translation string unused: released
 WARNING: translation string unused: removable device advice
 WARNING: translation string unused: reportfile
 WARNING: translation string unused: requested data
-WARNING: translation string unused: reserved dst port
-WARNING: translation string unused: reserved src port
 WARNING: translation string unused: restore hardware settings
 WARNING: translation string unused: root
 WARNING: translation string unused: root path
 WARNING: translation string unused: root user password
 WARNING: translation string unused: route subnet is invalid
 WARNING: translation string unused: router ip
-WARNING: translation string unused: rsvd dst port overlap
-WARNING: translation string unused: rsvd src port overlap
 WARNING: translation string unused: rules already up to date
 WARNING: translation string unused: safe removal of umounted device
 WARNING: translation string unused: save error
@@ -588,7 +595,6 @@ WARNING: translation string unused: use dov
 WARNING: translation string unused: use ibod
 WARNING: translation string unused: view log
 WARNING: translation string unused: vpn aggrmode
-WARNING: translation string unused: vpn configuration main
 WARNING: translation string unused: vpn incompatible use of defaultroute
 WARNING: translation string unused: vpn mtu invalid
 WARNING: translation string unused: vpn on blue
@@ -604,19 +610,20 @@ WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
 WARNING: translation string unused: yearly firewallhits
-WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: addons
 WARNING: untranslated string: bytes
 WARNING: untranslated string: community rules
 WARNING: untranslated string: dead peer detection
+WARNING: untranslated string: downlink
 WARNING: untranslated string: emerging rules
-WARNING: untranslated string: firewall logs country
+WARNING: untranslated string: first
 WARNING: untranslated string: fwhost err hostip
+WARNING: untranslated string: last
 WARNING: untranslated string: monitor interface
 WARNING: untranslated string: qos add subclass
 WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
 WARNING: untranslated string: routing config changed
 WARNING: untranslated string: routing table
-WARNING: untranslated string: source ip country
+WARNING: untranslated string: uplink
index 79dafe5bd0b297f069a63633bb6d879adacd30a1..3a0a4c704d5e04937fc2a43c4e98ecbdb5aea121 100644 (file)
@@ -1,4 +1,3 @@
-WARNING: translation string unused: Client status and controlc
 WARNING: translation string unused: ConnSched scheduler
 WARNING: translation string unused: ConnSched select profile
 WARNING: translation string unused: HDD temperature
@@ -146,6 +145,7 @@ WARNING: translation string unused: destination ip bad
 WARNING: translation string unused: destination ip or net
 WARNING: translation string unused: destination net
 WARNING: translation string unused: destination port overlaps
+WARNING: translation string unused: dh name is invalid
 WARNING: translation string unused: dhcp base ip fixed lease
 WARNING: translation string unused: dhcp create fixed leases
 WARNING: translation string unused: dhcp fixed lease err1
@@ -248,6 +248,14 @@ WARNING: translation string unused: fwdfw std network
 WARNING: translation string unused: fwdfw till
 WARNING: translation string unused: fwdfw time
 WARNING: translation string unused: fwdfw xt access
+WARNING: translation string unused: fwhost Custom Host
+WARNING: translation string unused: fwhost Custom Network
+WARNING: translation string unused: fwhost IpSec Host
+WARNING: translation string unused: fwhost IpSec Network
+WARNING: translation string unused: fwhost OpenVPN N-2-N
+WARNING: translation string unused: fwhost OpenVPN static host
+WARNING: translation string unused: fwhost OpenVPN static network
+WARNING: translation string unused: fwhost Standard Network
 WARNING: translation string unused: fwhost attention
 WARNING: translation string unused: fwhost blue
 WARNING: translation string unused: fwhost changeremark
@@ -381,6 +389,7 @@ WARNING: translation string unused: network time
 WARNING: translation string unused: network traffic graphs
 WARNING: translation string unused: network updated
 WARNING: translation string unused: networks settings
+WARNING: translation string unused: never
 WARNING: translation string unused: new optionsfw must boot
 WARNING: translation string unused: no alcatelusb firmware
 WARNING: translation string unused: no cfg upload
@@ -428,9 +437,10 @@ WARNING: translation string unused: outgoing firewall warning
 WARNING: translation string unused: override mtu
 WARNING: translation string unused: ovpn config
 WARNING: translation string unused: ovpn dl
+WARNING: translation string unused: ovpn engines
 WARNING: translation string unused: ovpn log
+WARNING: translation string unused: ovpn reneg sec
 WARNING: translation string unused: ovpn_fastio
-WARNING: translation string unused: ovpn_fragment
 WARNING: translation string unused: ovpn_mssfix
 WARNING: translation string unused: ovpn_mtudisc
 WARNING: translation string unused: ovpn_processprio
@@ -476,16 +486,12 @@ WARNING: translation string unused: released
 WARNING: translation string unused: removable device advice
 WARNING: translation string unused: reportfile
 WARNING: translation string unused: requested data
-WARNING: translation string unused: reserved dst port
-WARNING: translation string unused: reserved src port
 WARNING: translation string unused: restore hardware settings
 WARNING: translation string unused: root
 WARNING: translation string unused: root path
 WARNING: translation string unused: root user password
 WARNING: translation string unused: route subnet is invalid
 WARNING: translation string unused: router ip
-WARNING: translation string unused: rsvd dst port overlap
-WARNING: translation string unused: rsvd src port overlap
 WARNING: translation string unused: rules already up to date
 WARNING: translation string unused: safe removal of umounted device
 WARNING: translation string unused: save error
@@ -540,6 +546,7 @@ WARNING: translation string unused: successfully refreshed updates list
 WARNING: translation string unused: system graphs
 WARNING: translation string unused: system log viewer
 WARNING: translation string unused: system status information
+WARNING: translation string unused: teovpn_fragment
 WARNING: translation string unused: test
 WARNING: translation string unused: test email could not be sent
 WARNING: translation string unused: test email was sent
@@ -623,7 +630,6 @@ WARNING: translation string unused: use dov
 WARNING: translation string unused: use ibod
 WARNING: translation string unused: view log
 WARNING: translation string unused: vpn aggrmode
-WARNING: translation string unused: vpn configuration main
 WARNING: translation string unused: vpn incompatible use of defaultroute
 WARNING: translation string unused: vpn mtu invalid
 WARNING: translation string unused: vpn on blue
@@ -639,13 +645,15 @@ WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
 WARNING: translation string unused: yearly firewallhits
-WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: bytes
+WARNING: untranslated string: downlink
+WARNING: untranslated string: first
 WARNING: untranslated string: fwhost err hostip
+WARNING: untranslated string: last
 WARNING: untranslated string: monitor interface
 WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
 WARNING: untranslated string: routing config changed
 WARNING: untranslated string: routing table
-WARNING: untranslated string: source ip country
+WARNING: untranslated string: uplink
index f7649af637b0ddc34fa32f9457567cb091319c0c..e13636b9f971a0ab54ec907e882af9607e44e62c 100644 (file)
@@ -420,16 +420,12 @@ WARNING: translation string unused: released
 WARNING: translation string unused: removable device advice
 WARNING: translation string unused: reportfile
 WARNING: translation string unused: requested data
-WARNING: translation string unused: reserved dst port
-WARNING: translation string unused: reserved src port
 WARNING: translation string unused: restore hardware settings
 WARNING: translation string unused: root
 WARNING: translation string unused: root path
 WARNING: translation string unused: root user password
 WARNING: translation string unused: route subnet is invalid
 WARNING: translation string unused: router ip
-WARNING: translation string unused: rsvd dst port overlap
-WARNING: translation string unused: rsvd src port overlap
 WARNING: translation string unused: rules already up to date
 WARNING: translation string unused: safe removal of umounted device
 WARNING: translation string unused: save error
@@ -579,6 +575,7 @@ WARNING: untranslated string: ConnSched reboot
 WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: MB read
 WARNING: untranslated string: MB written
+WARNING: untranslated string: MTU settings
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: Set time on boot
@@ -588,6 +585,7 @@ WARNING: untranslated string: advproxy errmsg cache
 WARNING: untranslated string: advproxy errmsg invalid upstream proxy
 WARNING: untranslated string: advproxy errmsg proxy ports equal
 WARNING: untranslated string: advproxy proxy port transparent
+WARNING: untranslated string: atm device
 WARNING: untranslated string: attention
 WARNING: untranslated string: bit
 WARNING: untranslated string: bytes
@@ -637,8 +635,9 @@ WARNING: untranslated string: dead peer detection
 WARNING: untranslated string: deprecated fs warn
 WARNING: untranslated string: details
 WARNING: untranslated string: dh
+WARNING: untranslated string: dh key move failed
 WARNING: untranslated string: dh key warn
-WARNING: untranslated string: dh name is invalid
+WARNING: untranslated string: dh key warn1
 WARNING: untranslated string: dnat address
 WARNING: untranslated string: dns servers
 WARNING: untranslated string: dnsforward
@@ -876,7 +875,9 @@ WARNING: untranslated string: outgoing firewall p2p allow
 WARNING: untranslated string: outgoing firewall p2p deny
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
-WARNING: untranslated string: ovpn dh name
+WARNING: untranslated string: ovpn dh new key
+WARNING: untranslated string: ovpn dh parameters
+WARNING: untranslated string: ovpn dh upload
 WARNING: untranslated string: ovpn errmsg green already pushed
 WARNING: untranslated string: ovpn errmsg invalid ip or mask
 WARNING: untranslated string: ovpn generating the root and host certificates
@@ -903,6 +904,7 @@ WARNING: untranslated string: proxy reports monthly
 WARNING: untranslated string: proxy reports today
 WARNING: untranslated string: proxy reports weekly
 WARNING: untranslated string: qos enter bandwidths
+WARNING: untranslated string: random number generator daemon
 WARNING: untranslated string: red1
 WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
index a3084e87d2853875b7770f7d6299f566c0c06c52..759c18d581558b74fcc23582893000a30e9fc886 100644 (file)
@@ -431,16 +431,12 @@ WARNING: translation string unused: released
 WARNING: translation string unused: removable device advice
 WARNING: translation string unused: reportfile
 WARNING: translation string unused: requested data
-WARNING: translation string unused: reserved dst port
-WARNING: translation string unused: reserved src port
 WARNING: translation string unused: restore hardware settings
 WARNING: translation string unused: root
 WARNING: translation string unused: root path
 WARNING: translation string unused: root user password
 WARNING: translation string unused: route subnet is invalid
 WARNING: translation string unused: router ip
-WARNING: translation string unused: rsvd dst port overlap
-WARNING: translation string unused: rsvd src port overlap
 WARNING: translation string unused: rules already up to date
 WARNING: translation string unused: safe removal of umounted device
 WARNING: translation string unused: save error
@@ -590,6 +586,7 @@ WARNING: untranslated string: ConnSched reboot
 WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: MB read
 WARNING: untranslated string: MB written
+WARNING: untranslated string: MTU settings
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: addons
@@ -598,6 +595,7 @@ WARNING: untranslated string: advproxy errmsg cache
 WARNING: untranslated string: advproxy errmsg invalid upstream proxy
 WARNING: untranslated string: advproxy errmsg proxy ports equal
 WARNING: untranslated string: advproxy proxy port transparent
+WARNING: untranslated string: atm device
 WARNING: untranslated string: attention
 WARNING: untranslated string: bit
 WARNING: untranslated string: bytes
@@ -647,8 +645,9 @@ WARNING: untranslated string: dead peer detection
 WARNING: untranslated string: deprecated fs warn
 WARNING: untranslated string: details
 WARNING: untranslated string: dh
+WARNING: untranslated string: dh key move failed
 WARNING: untranslated string: dh key warn
-WARNING: untranslated string: dh name is invalid
+WARNING: untranslated string: dh key warn1
 WARNING: untranslated string: dnat address
 WARNING: untranslated string: dns address deleted txt
 WARNING: untranslated string: dns servers
@@ -887,7 +886,9 @@ WARNING: untranslated string: other
 WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
-WARNING: untranslated string: ovpn dh name
+WARNING: untranslated string: ovpn dh new key
+WARNING: untranslated string: ovpn dh parameters
+WARNING: untranslated string: ovpn dh upload
 WARNING: untranslated string: ovpn generating the root and host certificates
 WARNING: untranslated string: ovpn ha
 WARNING: untranslated string: ovpn hmac
@@ -910,6 +911,7 @@ WARNING: untranslated string: proxy reports monthly
 WARNING: untranslated string: proxy reports today
 WARNING: untranslated string: proxy reports weekly
 WARNING: untranslated string: qos enter bandwidths
+WARNING: untranslated string: random number generator daemon
 WARNING: untranslated string: red1
 WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
index 747f4062859e3c83441df6b848a2ef990d93c797..c1173f781bf52ed2e4340d16a6023c14f83198c9 100644 (file)
@@ -42,6 +42,11 @@ WARNING: translation string unused: advproxy no cre groups
 WARNING: translation string unused: advproxy ssadvanced proxy
 WARNING: translation string unused: advproxy update information
 WARNING: translation string unused: advproxy update notification
+WARNING: translation string unused: age second
+WARNING: translation string unused: age seconds
+WARNING: translation string unused: age shour
+WARNING: translation string unused: age sminute
+WARNING: translation string unused: age ssecond
 WARNING: translation string unused: alcatelusb help
 WARNING: translation string unused: alcatelusb upload
 WARNING: translation string unused: all interfaces
@@ -133,6 +138,7 @@ WARNING: translation string unused: ddns help freedns
 WARNING: translation string unused: ddns help plus
 WARNING: translation string unused: debugme
 WARNING: translation string unused: deep scan directories
+WARNING: translation string unused: default ip
 WARNING: translation string unused: default networks
 WARNING: translation string unused: default services
 WARNING: translation string unused: description
@@ -212,6 +218,7 @@ WARNING: translation string unused: firewall log viewer
 WARNING: translation string unused: firmware
 WARNING: translation string unused: firmware upload
 WARNING: translation string unused: force update
+WARNING: translation string unused: forward firewall
 WARNING: translation string unused: forwarding rule added
 WARNING: translation string unused: forwarding rule removed
 WARNING: translation string unused: forwarding rule updated
@@ -223,6 +230,47 @@ WARNING: translation string unused: from email pw
 WARNING: translation string unused: from email server
 WARNING: translation string unused: from email user
 WARNING: translation string unused: from warn email bad
+WARNING: translation string unused: fwdfw MODE1
+WARNING: translation string unused: fwdfw MODE2
+WARNING: translation string unused: fwdfw addrule
+WARNING: translation string unused: fwdfw err nosrcip
+WARNING: translation string unused: fwdfw err notgtip
+WARNING: translation string unused: fwdfw err prot_port1
+WARNING: translation string unused: fwdfw final_rule
+WARNING: translation string unused: fwdfw from
+WARNING: translation string unused: fwdfw ipsec network
+WARNING: translation string unused: fwdfw man port
+WARNING: translation string unused: fwdfw menu
+WARNING: translation string unused: fwdfw natport used
+WARNING: translation string unused: fwdfw p2p txt
+WARNING: translation string unused: fwdfw rule action
+WARNING: translation string unused: fwdfw rules
+WARNING: translation string unused: fwdfw std network
+WARNING: translation string unused: fwdfw till
+WARNING: translation string unused: fwdfw time
+WARNING: translation string unused: fwdfw xt access
+WARNING: translation string unused: fwhost Custom Host
+WARNING: translation string unused: fwhost Custom Network
+WARNING: translation string unused: fwhost IpSec Host
+WARNING: translation string unused: fwhost IpSec Network
+WARNING: translation string unused: fwhost OpenVPN N-2-N
+WARNING: translation string unused: fwhost OpenVPN static host
+WARNING: translation string unused: fwhost OpenVPN static network
+WARNING: translation string unused: fwhost Standard Network
+WARNING: translation string unused: fwhost attention
+WARNING: translation string unused: fwhost blue
+WARNING: translation string unused: fwhost changeremark
+WARNING: translation string unused: fwhost err addrgrp
+WARNING: translation string unused: fwhost err hostorip
+WARNING: translation string unused: fwhost err mac
+WARNING: translation string unused: fwhost green
+WARNING: translation string unused: fwhost hosts
+WARNING: translation string unused: fwhost ipadr
+WARNING: translation string unused: fwhost ipsec host
+WARNING: translation string unused: fwhost orange
+WARNING: translation string unused: fwhost reread
+WARNING: translation string unused: fwhost reset
+WARNING: translation string unused: fwhost wo subnet
 WARNING: translation string unused: g.dtm
 WARNING: translation string unused: g.lite
 WARNING: translation string unused: gen static key
@@ -268,6 +316,7 @@ WARNING: translation string unused: invalid upstream proxy username or password
 WARNING: translation string unused: invert
 WARNING: translation string unused: ip address in use
 WARNING: translation string unused: ipfire side
+WARNING: translation string unused: ipsec no connections
 WARNING: translation string unused: iptable rules
 WARNING: translation string unused: isdn
 WARNING: translation string unused: isdn settings
@@ -436,16 +485,12 @@ WARNING: translation string unused: released
 WARNING: translation string unused: removable device advice
 WARNING: translation string unused: reportfile
 WARNING: translation string unused: requested data
-WARNING: translation string unused: reserved dst port
-WARNING: translation string unused: reserved src port
 WARNING: translation string unused: restore hardware settings
 WARNING: translation string unused: root
 WARNING: translation string unused: root path
 WARNING: translation string unused: root user password
 WARNING: translation string unused: route subnet is invalid
 WARNING: translation string unused: router ip
-WARNING: translation string unused: rsvd dst port overlap
-WARNING: translation string unused: rsvd src port overlap
 WARNING: translation string unused: rules already up to date
 WARNING: translation string unused: safe removal of umounted device
 WARNING: translation string unused: save error
@@ -517,6 +562,13 @@ WARNING: translation string unused: to email adr
 WARNING: translation string unused: to install an update
 WARNING: translation string unused: to warn email bad
 WARNING: translation string unused: too long 80 char max
+WARNING: translation string unused: tor 0 = disabled
+WARNING: translation string unused: tor accounting period daily
+WARNING: translation string unused: tor accounting period monthly
+WARNING: translation string unused: tor accounting period weekly
+WARNING: translation string unused: tor bridge enabled
+WARNING: translation string unused: tor errmsg invalid node id
+WARNING: translation string unused: tor exit country
 WARNING: translation string unused: total connection time
 WARNING: translation string unused: traffic back
 WARNING: translation string unused: traffic calc time
@@ -547,9 +599,12 @@ WARNING: translation string unused: updates is old1
 WARNING: translation string unused: updates is old2
 WARNING: translation string unused: updxlrtr children
 WARNING: translation string unused: updxlrtr invalid num of children
+WARNING: translation string unused: updxlrtr sources
+WARNING: translation string unused: updxlrtr standard view
 WARNING: translation string unused: updxlrtr unknown
 WARNING: translation string unused: updxlrtr update information
 WARNING: translation string unused: updxlrtr update notification
+WARNING: translation string unused: updxlrtr used by
 WARNING: translation string unused: upload fcdsl.o
 WARNING: translation string unused: upload file
 WARNING: translation string unused: upload static key
@@ -559,6 +614,7 @@ WARNING: translation string unused: upload update file
 WARNING: translation string unused: upstream password
 WARNING: translation string unused: upstream proxy host:port
 WARNING: translation string unused: upstream username
+WARNING: translation string unused: uptime
 WARNING: translation string unused: uptime and users
 WARNING: translation string unused: urlfilter background image
 WARNING: translation string unused: urlfilter background text
@@ -588,218 +644,24 @@ WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
 WARNING: translation string unused: yearly firewallhits
-WARNING: untranslated string: ConnSched dial
-WARNING: untranslated string: ConnSched hangup
-WARNING: untranslated string: ConnSched reboot
-WARNING: untranslated string: ConnSched shutdown
-WARNING: untranslated string: MB read
-WARNING: untranslated string: MB written
+WARNING: untranslated string: MTU settings
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
-WARNING: untranslated string: addons
-WARNING: untranslated string: advproxy cache-digest
-WARNING: untranslated string: advproxy errmsg proxy ports equal
-WARNING: untranslated string: advproxy proxy port transparent
-WARNING: untranslated string: bit
+WARNING: untranslated string: atm device
 WARNING: untranslated string: bytes
 WARNING: untranslated string: capabilities
-WARNING: untranslated string: ccd err isipsecrw
-WARNING: untranslated string: ccd err isovpnn2n
-WARNING: untranslated string: ccd iroute2
-WARNING: untranslated string: count
-WARNING: untranslated string: countries
-WARNING: untranslated string: country codes and flags
-WARNING: untranslated string: countrycode
-WARNING: untranslated string: dead peer detection
-WARNING: untranslated string: details
 WARNING: untranslated string: dh
+WARNING: untranslated string: dh key move failed
 WARNING: untranslated string: dh key warn
-WARNING: untranslated string: dh name is invalid
-WARNING: untranslated string: dnat address
+WARNING: untranslated string: dh key warn1
 WARNING: untranslated string: dns servers
-WARNING: untranslated string: dnsforward
-WARNING: untranslated string: dnsforward add a new entry
-WARNING: untranslated string: dnsforward configuration
-WARNING: untranslated string: dnsforward edit an entry
-WARNING: untranslated string: dnsforward entries
-WARNING: untranslated string: dnsforward forward_server
-WARNING: untranslated string: dnsforward zone
-WARNING: untranslated string: downlink
-WARNING: untranslated string: dpd delay
-WARNING: untranslated string: dpd timeout
-WARNING: untranslated string: drop action
-WARNING: untranslated string: drop action1
-WARNING: untranslated string: drop action2
-WARNING: untranslated string: drop forward
 WARNING: untranslated string: drop outgoing
-WARNING: untranslated string: encryption
-WARNING: untranslated string: entropy
-WARNING: untranslated string: entropy graphs
 WARNING: untranslated string: firewall logs country
-WARNING: untranslated string: firewall rules
-WARNING: untranslated string: first
-WARNING: untranslated string: flag
-WARNING: untranslated string: fw default drop
-WARNING: untranslated string: fw settings
-WARNING: untranslated string: fw settings color
-WARNING: untranslated string: fw settings dropdown
-WARNING: untranslated string: fw settings remark
-WARNING: untranslated string: fw settings ruletable
-WARNING: untranslated string: fwdfw ACCEPT
-WARNING: untranslated string: fwdfw DROP
-WARNING: untranslated string: fwdfw REJECT
-WARNING: untranslated string: fwdfw action
-WARNING: untranslated string: fwdfw additional
-WARNING: untranslated string: fwdfw all icmp
-WARNING: untranslated string: fwdfw change
-WARNING: untranslated string: fwdfw copy
-WARNING: untranslated string: fwdfw delete
-WARNING: untranslated string: fwdfw dnat
-WARNING: untranslated string: fwdfw dnat error
-WARNING: untranslated string: fwdfw dnat extport
-WARNING: untranslated string: fwdfw dnat nochoice
-WARNING: untranslated string: fwdfw dnat porterr
-WARNING: untranslated string: fwdfw dnat porterr2
-WARNING: untranslated string: fwdfw edit
-WARNING: untranslated string: fwdfw err nosrc
-WARNING: untranslated string: fwdfw err notgt
-WARNING: untranslated string: fwdfw err prot_port
-WARNING: untranslated string: fwdfw err remark
-WARNING: untranslated string: fwdfw err ruleexists
-WARNING: untranslated string: fwdfw err same
-WARNING: untranslated string: fwdfw err samesub
-WARNING: untranslated string: fwdfw err src_addr
-WARNING: untranslated string: fwdfw err tgt_addr
-WARNING: untranslated string: fwdfw err tgt_grp
-WARNING: untranslated string: fwdfw err tgt_mac
-WARNING: untranslated string: fwdfw err tgt_port
-WARNING: untranslated string: fwdfw err time
-WARNING: untranslated string: fwdfw external port nat
-WARNING: untranslated string: fwdfw hint ip1
-WARNING: untranslated string: fwdfw hint ip2
-WARNING: untranslated string: fwdfw hint mac
-WARNING: untranslated string: fwdfw iface
-WARNING: untranslated string: fwdfw log
-WARNING: untranslated string: fwdfw log rule
-WARNING: untranslated string: fwdfw many
-WARNING: untranslated string: fwdfw movedown
-WARNING: untranslated string: fwdfw moveup
-WARNING: untranslated string: fwdfw newrule
-WARNING: untranslated string: fwdfw pol allow
-WARNING: untranslated string: fwdfw pol block
-WARNING: untranslated string: fwdfw pol text
-WARNING: untranslated string: fwdfw pol text1
-WARNING: untranslated string: fwdfw pol title
-WARNING: untranslated string: fwdfw prot41
-WARNING: untranslated string: fwdfw prot41 short
-WARNING: untranslated string: fwdfw red
-WARNING: untranslated string: fwdfw reread
-WARNING: untranslated string: fwdfw rule activate
-WARNING: untranslated string: fwdfw rulepos
-WARNING: untranslated string: fwdfw snat
-WARNING: untranslated string: fwdfw source
-WARNING: untranslated string: fwdfw sourceip
-WARNING: untranslated string: fwdfw target
-WARNING: untranslated string: fwdfw targetip
-WARNING: untranslated string: fwdfw timeframe
-WARNING: untranslated string: fwdfw toggle
-WARNING: untranslated string: fwdfw togglelog
-WARNING: untranslated string: fwdfw use nat
-WARNING: untranslated string: fwdfw use srcport
-WARNING: untranslated string: fwdfw use srv
-WARNING: untranslated string: fwdfw useless rule
-WARNING: untranslated string: fwdfw warn1
-WARNING: untranslated string: fwdfw wd_fri
-WARNING: untranslated string: fwdfw wd_mon
-WARNING: untranslated string: fwdfw wd_sat
-WARNING: untranslated string: fwdfw wd_sun
-WARNING: untranslated string: fwdfw wd_thu
-WARNING: untranslated string: fwdfw wd_tue
-WARNING: untranslated string: fwdfw wd_wed
-WARNING: untranslated string: fwhost addgrp
-WARNING: untranslated string: fwhost addgrpname
-WARNING: untranslated string: fwhost addhost
-WARNING: untranslated string: fwhost addnet
-WARNING: untranslated string: fwhost addservice
-WARNING: untranslated string: fwhost addservicegrp
-WARNING: untranslated string: fwhost any
-WARNING: untranslated string: fwhost back
-WARNING: untranslated string: fwhost ccdhost
-WARNING: untranslated string: fwhost ccdnet
-WARNING: untranslated string: fwhost change
-WARNING: untranslated string: fwhost cust addr
-WARNING: untranslated string: fwhost cust grp
-WARNING: untranslated string: fwhost cust net
-WARNING: untranslated string: fwhost cust service
-WARNING: untranslated string: fwhost cust srvgrp
-WARNING: untranslated string: fwhost deleted
-WARNING: untranslated string: fwhost empty
-WARNING: untranslated string: fwhost err addr
-WARNING: untranslated string: fwhost err empty
-WARNING: untranslated string: fwhost err emptytable
-WARNING: untranslated string: fwhost err groupempty
-WARNING: untranslated string: fwhost err grpexist
-WARNING: untranslated string: fwhost err hostexist
 WARNING: untranslated string: fwhost err hostip
-WARNING: untranslated string: fwhost err ip
-WARNING: untranslated string: fwhost err ipcheck
-WARNING: untranslated string: fwhost err ipmac
-WARNING: untranslated string: fwhost err ipwithsub
-WARNING: untranslated string: fwhost err isccdhost
-WARNING: untranslated string: fwhost err isccdiphost
-WARNING: untranslated string: fwhost err isccdipnet
-WARNING: untranslated string: fwhost err isccdnet
-WARNING: untranslated string: fwhost err isingrp
-WARNING: untranslated string: fwhost err maxservicetcp
-WARNING: untranslated string: fwhost err maxserviceudp
-WARNING: untranslated string: fwhost err name
-WARNING: untranslated string: fwhost err name1
-WARNING: untranslated string: fwhost err net
-WARNING: untranslated string: fwhost err netexist
-WARNING: untranslated string: fwhost err partofnet
-WARNING: untranslated string: fwhost err port
-WARNING: untranslated string: fwhost err remark
-WARNING: untranslated string: fwhost err srv exists
-WARNING: untranslated string: fwhost err srvexist
-WARNING: untranslated string: fwhost err sub32
-WARNING: untranslated string: fwhost hint
-WARNING: untranslated string: fwhost icmptype
-WARNING: untranslated string: fwhost ip_mac
-WARNING: untranslated string: fwhost ipsec net
-WARNING: untranslated string: fwhost menu
-WARNING: untranslated string: fwhost netaddress
-WARNING: untranslated string: fwhost newgrp
-WARNING: untranslated string: fwhost newhost
-WARNING: untranslated string: fwhost newnet
-WARNING: untranslated string: fwhost newservice
-WARNING: untranslated string: fwhost newservicegrp
-WARNING: untranslated string: fwhost ovpn_n2n
-WARNING: untranslated string: fwhost port
-WARNING: untranslated string: fwhost prot
-WARNING: untranslated string: fwhost services
-WARNING: untranslated string: fwhost srv_name
-WARNING: untranslated string: fwhost stdnet
-WARNING: untranslated string: fwhost type
-WARNING: untranslated string: fwhost used
-WARNING: untranslated string: fwhost welcome
 WARNING: untranslated string: gen dh
 WARNING: untranslated string: generate dh key
-WARNING: untranslated string: grouptype
-WARNING: untranslated string: hardware support
 WARNING: untranslated string: imei
 WARNING: untranslated string: imsi
-WARNING: untranslated string: incoming firewall access
-WARNING: untranslated string: integrity
-WARNING: untranslated string: invalid input for dpd delay
-WARNING: untranslated string: invalid input for dpd timeout
-WARNING: untranslated string: ipsec
-WARNING: untranslated string: ipsec network
-WARNING: untranslated string: last
-WARNING: untranslated string: least preferred
-WARNING: untranslated string: lifetime
-WARNING: untranslated string: mac filter
-WARNING: untranslated string: maximum
-WARNING: untranslated string: minimum
 WARNING: untranslated string: model
 WARNING: untranslated string: modem hardware details
 WARNING: untranslated string: modem information
@@ -814,118 +676,22 @@ WARNING: untranslated string: modem no connection message
 WARNING: untranslated string: modem sim information
 WARNING: untranslated string: modem status
 WARNING: untranslated string: monitor interface
-WARNING: untranslated string: most preferred
-WARNING: untranslated string: no hardware random number generator
 WARNING: untranslated string: not a valid dh key
-WARNING: untranslated string: notice
-WARNING: untranslated string: openvpn network
-WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
-WARNING: untranslated string: ovpn dh name
+WARNING: untranslated string: ovpn dh new key
+WARNING: untranslated string: ovpn dh parameters
+WARNING: untranslated string: ovpn dh upload
 WARNING: untranslated string: ovpn generating the root and host certificates
 WARNING: untranslated string: ovpn ha
 WARNING: untranslated string: ovpn hmac
-WARNING: untranslated string: ovpn mgmt in root range
-WARNING: untranslated string: ovpn no connections
-WARNING: untranslated string: ovpn port in root range
-WARNING: untranslated string: p2p block
-WARNING: untranslated string: p2p block save notice
-WARNING: untranslated string: qos enter bandwidths
-WARNING: untranslated string: red1
+WARNING: untranslated string: random number generator daemon
 WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
 WARNING: untranslated string: routing config changed
 WARNING: untranslated string: routing table
 WARNING: untranslated string: show dh
-WARNING: untranslated string: snat new source ip address
 WARNING: untranslated string: software version
 WARNING: untranslated string: source ip country
-WARNING: untranslated string: ssh
-WARNING: untranslated string: support donation
-WARNING: untranslated string: system has hwrng
-WARNING: untranslated string: system has rdrand
-WARNING: untranslated string: tor
-WARNING: untranslated string: tor accounting
-WARNING: untranslated string: tor accounting bytes
-WARNING: untranslated string: tor accounting bytes left
-WARNING: untranslated string: tor accounting interval
-WARNING: untranslated string: tor accounting limit
-WARNING: untranslated string: tor accounting period
-WARNING: untranslated string: tor acls
-WARNING: untranslated string: tor allowed subnets
-WARNING: untranslated string: tor bandwidth burst
-WARNING: untranslated string: tor bandwidth rate
-WARNING: untranslated string: tor bandwidth settings
-WARNING: untranslated string: tor bandwidth unlimited
-WARNING: untranslated string: tor common settings
-WARNING: untranslated string: tor configuration
-WARNING: untranslated string: tor connected relays
-WARNING: untranslated string: tor contact info
-WARNING: untranslated string: tor daemon
-WARNING: untranslated string: tor directory port
-WARNING: untranslated string: tor enabled
-WARNING: untranslated string: tor errmsg invalid accounting limit
-WARNING: untranslated string: tor errmsg invalid directory port
-WARNING: untranslated string: tor errmsg invalid ip or mask
-WARNING: untranslated string: tor errmsg invalid relay address
-WARNING: untranslated string: tor errmsg invalid relay name
-WARNING: untranslated string: tor errmsg invalid relay port
-WARNING: untranslated string: tor errmsg invalid socks port
-WARNING: untranslated string: tor exit country any
-WARNING: untranslated string: tor exit nodes
-WARNING: untranslated string: tor relay address
-WARNING: untranslated string: tor relay configuration
-WARNING: untranslated string: tor relay enabled
-WARNING: untranslated string: tor relay external address
-WARNING: untranslated string: tor relay fingerprint
-WARNING: untranslated string: tor relay mode
-WARNING: untranslated string: tor relay mode bridge
-WARNING: untranslated string: tor relay mode exit
-WARNING: untranslated string: tor relay mode private bridge
-WARNING: untranslated string: tor relay mode relay
-WARNING: untranslated string: tor relay nickname
-WARNING: untranslated string: tor relay port
-WARNING: untranslated string: tor service
-WARNING: untranslated string: tor socks port
-WARNING: untranslated string: tor stats
-WARNING: untranslated string: tor traffic limit hard
-WARNING: untranslated string: tor traffic limit soft
-WARNING: untranslated string: tor traffic read written
-WARNING: untranslated string: tor use exit nodes
-WARNING: untranslated string: uplink
 WARNING: untranslated string: upload dh key
-WARNING: untranslated string: uptime load average
-WARNING: untranslated string: urlfilter redirect template
 WARNING: untranslated string: vendor
-WARNING: untranslated string: wlan client
-WARNING: untranslated string: wlan client advanced settings
-WARNING: untranslated string: wlan client and
-WARNING: untranslated string: wlan client bssid
-WARNING: untranslated string: wlan client ccmp
-WARNING: untranslated string: wlan client configuration
-WARNING: untranslated string: wlan client disconnected
-WARNING: untranslated string: wlan client duplicate ssid
-WARNING: untranslated string: wlan client edit entry
-WARNING: untranslated string: wlan client encryption
-WARNING: untranslated string: wlan client encryption none
-WARNING: untranslated string: wlan client encryption wep
-WARNING: untranslated string: wlan client encryption wpa
-WARNING: untranslated string: wlan client encryption wpa2
-WARNING: untranslated string: wlan client group cipher
-WARNING: untranslated string: wlan client group key algorithm
-WARNING: untranslated string: wlan client invalid key length
-WARNING: untranslated string: wlan client new entry
-WARNING: untranslated string: wlan client new network
-WARNING: untranslated string: wlan client pairwise cipher
-WARNING: untranslated string: wlan client pairwise key algorithm
-WARNING: untranslated string: wlan client pairwise key group key
-WARNING: untranslated string: wlan client psk
-WARNING: untranslated string: wlan client ssid
-WARNING: untranslated string: wlan client tkip
-WARNING: untranslated string: wlan client wpa mode
-WARNING: untranslated string: wlan client wpa mode all
-WARNING: untranslated string: wlan client wpa mode ccmp ccmp
-WARNING: untranslated string: wlan client wpa mode ccmp tkip
-WARNING: untranslated string: wlan client wpa mode tkip tkip
-WARNING: untranslated string: wlan clients
index f7649af637b0ddc34fa32f9457567cb091319c0c..e13636b9f971a0ab54ec907e882af9607e44e62c 100644 (file)
@@ -420,16 +420,12 @@ WARNING: translation string unused: released
 WARNING: translation string unused: removable device advice
 WARNING: translation string unused: reportfile
 WARNING: translation string unused: requested data
-WARNING: translation string unused: reserved dst port
-WARNING: translation string unused: reserved src port
 WARNING: translation string unused: restore hardware settings
 WARNING: translation string unused: root
 WARNING: translation string unused: root path
 WARNING: translation string unused: root user password
 WARNING: translation string unused: route subnet is invalid
 WARNING: translation string unused: router ip
-WARNING: translation string unused: rsvd dst port overlap
-WARNING: translation string unused: rsvd src port overlap
 WARNING: translation string unused: rules already up to date
 WARNING: translation string unused: safe removal of umounted device
 WARNING: translation string unused: save error
@@ -579,6 +575,7 @@ WARNING: untranslated string: ConnSched reboot
 WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: MB read
 WARNING: untranslated string: MB written
+WARNING: untranslated string: MTU settings
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: Set time on boot
@@ -588,6 +585,7 @@ WARNING: untranslated string: advproxy errmsg cache
 WARNING: untranslated string: advproxy errmsg invalid upstream proxy
 WARNING: untranslated string: advproxy errmsg proxy ports equal
 WARNING: untranslated string: advproxy proxy port transparent
+WARNING: untranslated string: atm device
 WARNING: untranslated string: attention
 WARNING: untranslated string: bit
 WARNING: untranslated string: bytes
@@ -637,8 +635,9 @@ WARNING: untranslated string: dead peer detection
 WARNING: untranslated string: deprecated fs warn
 WARNING: untranslated string: details
 WARNING: untranslated string: dh
+WARNING: untranslated string: dh key move failed
 WARNING: untranslated string: dh key warn
-WARNING: untranslated string: dh name is invalid
+WARNING: untranslated string: dh key warn1
 WARNING: untranslated string: dnat address
 WARNING: untranslated string: dns servers
 WARNING: untranslated string: dnsforward
@@ -876,7 +875,9 @@ WARNING: untranslated string: outgoing firewall p2p allow
 WARNING: untranslated string: outgoing firewall p2p deny
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
-WARNING: untranslated string: ovpn dh name
+WARNING: untranslated string: ovpn dh new key
+WARNING: untranslated string: ovpn dh parameters
+WARNING: untranslated string: ovpn dh upload
 WARNING: untranslated string: ovpn errmsg green already pushed
 WARNING: untranslated string: ovpn errmsg invalid ip or mask
 WARNING: untranslated string: ovpn generating the root and host certificates
@@ -903,6 +904,7 @@ WARNING: untranslated string: proxy reports monthly
 WARNING: untranslated string: proxy reports today
 WARNING: untranslated string: proxy reports weekly
 WARNING: untranslated string: qos enter bandwidths
+WARNING: untranslated string: random number generator daemon
 WARNING: untranslated string: red1
 WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
index 0af9d3c2c0fa4bda4e149a63a0bac2b7e67ded04..0589067d00ebb7483965051a6044dd3d031246c8 100644 (file)
@@ -425,16 +425,12 @@ WARNING: translation string unused: released
 WARNING: translation string unused: removable device advice
 WARNING: translation string unused: reportfile
 WARNING: translation string unused: requested data
-WARNING: translation string unused: reserved dst port
-WARNING: translation string unused: reserved src port
 WARNING: translation string unused: restore hardware settings
 WARNING: translation string unused: root
 WARNING: translation string unused: root path
 WARNING: translation string unused: root user password
 WARNING: translation string unused: route subnet is invalid
 WARNING: translation string unused: router ip
-WARNING: translation string unused: rsvd dst port overlap
-WARNING: translation string unused: rsvd src port overlap
 WARNING: translation string unused: rules already up to date
 WARNING: translation string unused: safe removal of umounted device
 WARNING: translation string unused: save error
@@ -583,6 +579,7 @@ WARNING: untranslated string: ConnSched shutdown
 WARNING: untranslated string: Edit an existing route
 WARNING: untranslated string: MB read
 WARNING: untranslated string: MB written
+WARNING: untranslated string: MTU settings
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: addons
@@ -591,6 +588,7 @@ WARNING: untranslated string: advproxy errmsg cache
 WARNING: untranslated string: advproxy errmsg invalid upstream proxy
 WARNING: untranslated string: advproxy errmsg proxy ports equal
 WARNING: untranslated string: advproxy proxy port transparent
+WARNING: untranslated string: atm device
 WARNING: untranslated string: attention
 WARNING: untranslated string: bit
 WARNING: untranslated string: bytes
@@ -641,8 +639,9 @@ WARNING: untranslated string: dead peer detection
 WARNING: untranslated string: deprecated fs warn
 WARNING: untranslated string: details
 WARNING: untranslated string: dh
+WARNING: untranslated string: dh key move failed
 WARNING: untranslated string: dh key warn
-WARNING: untranslated string: dh name is invalid
+WARNING: untranslated string: dh key warn1
 WARNING: untranslated string: disk access per
 WARNING: untranslated string: dnat address
 WARNING: untranslated string: dns servers
@@ -871,7 +870,9 @@ WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: outgoing traffic in bytes per second
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
-WARNING: untranslated string: ovpn dh name
+WARNING: untranslated string: ovpn dh new key
+WARNING: untranslated string: ovpn dh parameters
+WARNING: untranslated string: ovpn dh upload
 WARNING: untranslated string: ovpn generating the root and host certificates
 WARNING: untranslated string: ovpn ha
 WARNING: untranslated string: ovpn hmac
@@ -893,6 +894,7 @@ WARNING: untranslated string: proxy reports monthly
 WARNING: untranslated string: proxy reports today
 WARNING: untranslated string: proxy reports weekly
 WARNING: untranslated string: qos enter bandwidths
+WARNING: untranslated string: random number generator daemon
 WARNING: untranslated string: red1
 WARNING: untranslated string: route config changed
 WARNING: untranslated string: routing config added
index bbb832d0e835638393e1c4fa864f1ec9e5644ad0..2d9ebf7ceeac22dd4046b24dfcdd782464e11361 100644 (file)
@@ -248,6 +248,14 @@ WARNING: translation string unused: fwdfw std network
 WARNING: translation string unused: fwdfw till
 WARNING: translation string unused: fwdfw time
 WARNING: translation string unused: fwdfw xt access
+WARNING: translation string unused: fwhost Custom Host
+WARNING: translation string unused: fwhost Custom Network
+WARNING: translation string unused: fwhost IpSec Host
+WARNING: translation string unused: fwhost IpSec Network
+WARNING: translation string unused: fwhost OpenVPN N-2-N
+WARNING: translation string unused: fwhost OpenVPN static host
+WARNING: translation string unused: fwhost OpenVPN static network
+WARNING: translation string unused: fwhost Standard Network
 WARNING: translation string unused: fwhost attention
 WARNING: translation string unused: fwhost blue
 WARNING: translation string unused: fwhost changeremark
@@ -476,16 +484,12 @@ WARNING: translation string unused: released
 WARNING: translation string unused: removable device advice
 WARNING: translation string unused: reportfile
 WARNING: translation string unused: requested data
-WARNING: translation string unused: reserved dst port
-WARNING: translation string unused: reserved src port
 WARNING: translation string unused: restore hardware settings
 WARNING: translation string unused: root
 WARNING: translation string unused: root path
 WARNING: translation string unused: root user password
 WARNING: translation string unused: route subnet is invalid
 WARNING: translation string unused: router ip
-WARNING: translation string unused: rsvd dst port overlap
-WARNING: translation string unused: rsvd src port overlap
 WARNING: translation string unused: rules already up to date
 WARNING: translation string unused: safe removal of umounted device
 WARNING: translation string unused: save error
@@ -639,26 +643,21 @@ WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
 WARNING: translation string unused: yearly firewallhits
-WARNING: untranslated string: ConnSched dial
-WARNING: untranslated string: ConnSched hangup
-WARNING: untranslated string: ConnSched reboot
-WARNING: untranslated string: ConnSched shutdown
+WARNING: untranslated string: MTU settings
 WARNING: untranslated string: Number of Countries for the pie chart
 WARNING: untranslated string: Scan for Songs
 WARNING: untranslated string: bytes
 WARNING: untranslated string: capabilities
-WARNING: untranslated string: count
 WARNING: untranslated string: dh
+WARNING: untranslated string: dh key move failed
 WARNING: untranslated string: dh key warn
-WARNING: untranslated string: dh name is invalid
+WARNING: untranslated string: dh key warn1
 WARNING: untranslated string: firewall logs country
-WARNING: untranslated string: fwdfw many
 WARNING: untranslated string: fwhost err hostip
 WARNING: untranslated string: gen dh
 WARNING: untranslated string: generate dh key
 WARNING: untranslated string: imei
 WARNING: untranslated string: imsi
-WARNING: untranslated string: incoming firewall access
 WARNING: untranslated string: model
 WARNING: untranslated string: modem hardware details
 WARNING: untranslated string: modem information
@@ -674,10 +673,11 @@ WARNING: untranslated string: modem sim information
 WARNING: untranslated string: modem status
 WARNING: untranslated string: monitor interface
 WARNING: untranslated string: not a valid dh key
-WARNING: untranslated string: outgoing firewall access
 WARNING: untranslated string: ovpn crypt options
 WARNING: untranslated string: ovpn dh
-WARNING: untranslated string: ovpn dh name
+WARNING: untranslated string: ovpn dh new key
+WARNING: untranslated string: ovpn dh parameters
+WARNING: untranslated string: ovpn dh upload
 WARNING: untranslated string: ovpn generating the root and host certificates
 WARNING: untranslated string: ovpn ha
 WARNING: untranslated string: ovpn hmac
index 6d7bb9266a3b1016b4d5312fd9a5bfcf88bdbf0d..2def4819eb4371674da1f76a947050c01e3fe4a1 100644 (file)
@@ -6,6 +6,7 @@
 ############################################################################
 < addon
 < ccd maxclients
+< ovpn_fragment
 ############################################################################
 # Checking install/setup translations for language: fr                     #
 ############################################################################
@@ -23,6 +24,7 @@
 < age shour
 < age sminute
 < age ssecond
+< atm device
 < attention
 < bit
 < capabilities
@@ -78,8 +80,9 @@
 < deprecated fs warn
 < details
 < dh
+< dh key move failed
 < dh key warn
-< dh name is invalid
+< dh key warn1
 < dnat address
 < dns address deleted txt
 < dnsforward
@@ -90,7 +93,6 @@
 < dnsforward forward_server
 < dnsforward zone
 < dns servers
-< downlink
 < dpd delay
 < dpd timeout
 < drop action
 < fireinfo why enable
 < fireinfo why read more
 < fireinfo your profile id
+< firewall logs country
 < firewall rules
-< first
 < flag
 < forward firewall
 < fw default drop
 < fwhost cust addr
 < fwhost cust grp
 < fwhost cust net
+< fwhost Custom Host
+< fwhost Custom Network
 < fwhost cust service
 < fwhost cust srvgrp
 < fwhost deleted
 < fwhost ipadr
 < fwhost ip_mac
 < fwhost ipsec host
+< fwhost IpSec Host
 < fwhost ipsec net
+< fwhost IpSec Network
 < fwhost menu
 < fwhost netaddress
 < fwhost newgrp
 < fwhost newnet
 < fwhost newservice
 < fwhost newservicegrp
+< fwhost OpenVPN N-2-N
+< fwhost OpenVPN static host
+< fwhost OpenVPN static network
 < fwhost orange
 < fwhost ovpn_n2n
 < fwhost port
 < fwhost reset
 < fwhost services
 < fwhost srv_name
+< fwhost Standard Network
 < fwhost stdnet
 < fwhost type
 < fwhost used
 < ipsec
 < ipsec network
 < ipsec no connections
-< last
 < least preferred
 < lifetime
 < mac filter
 < modem sim information
 < modem status
 < most preferred
+< MTU settings
+< never
 < no hardware random number generator
 < not a valid dh key
 < notice
 < ntp common settings
 < ntp sync
+< Number of Countries for the pie chart
 < openvpn default
 < openvpn destination port used
 < openvpn disabled
 < outgoing firewall access
 < ovpn crypt options
 < ovpn dh
-< ovpn dh name
+< ovpn dh new key
+< ovpn dh parameters
+< ovpn dh upload
+< ovpn engines
 < ovpn generating the root and host certificates
 < ovpn ha
 < ovpn hmac
 < ovpn mtu-disc yes
 < ovpn no connections
 < ovpn port in root range
+< ovpn reneg sec
 < p2p block
 < p2p block save notice
 < proxy reports
 < proxy reports today
 < proxy reports weekly
 < qos enter bandwidths
+< random number generator daemon
 < red1
 < server restart
 < show dh
 < snat new source ip address
 < snort working
 < software version
+< source ip country
 < ssh
 < static routes
 < support donation
 < tor use exit nodes
 < updxlrtr sources
 < updxlrtr standard view
-< uplink
 < upload dh key
 < upload new ruleset
 < uptime
 < age sminute
 < age ssecond
 < Async logging enabled
+< atm device
 < attention
 < bit
 < capabilities
 < deprecated fs warn
 < details
 < dh
+< dh key move failed
 < dh key warn
-< dh name is invalid
+< dh key warn1
 < dnat address
 < dnsforward
 < dnsforward add a new entry
 < dnsforward forward_server
 < dnsforward zone
 < dns servers
-< downlink
 < dpd delay
 < dpd timeout
 < drop action
 < fireinfo why enable
 < fireinfo why read more
 < fireinfo your profile id
+< firewall logs country
 < firewall rules
-< first
 < flag
 < forward firewall
 < fw default drop
 < fwhost cust addr
 < fwhost cust grp
 < fwhost cust net
+< fwhost Custom Host
+< fwhost Custom Network
 < fwhost cust service
 < fwhost cust srvgrp
 < fwhost deleted
 < fwhost ipadr
 < fwhost ip_mac
 < fwhost ipsec host
+< fwhost IpSec Host
 < fwhost ipsec net
+< fwhost IpSec Network
 < fwhost menu
 < fwhost netaddress
 < fwhost newgrp
 < fwhost newnet
 < fwhost newservice
 < fwhost newservicegrp
+< fwhost OpenVPN N-2-N
+< fwhost OpenVPN static host
+< fwhost OpenVPN static network
 < fwhost orange
 < fwhost ovpn_n2n
 < fwhost port
 < fwhost reset
 < fwhost services
 < fwhost srv_name
+< fwhost Standard Network
 < fwhost stdnet
 < fwhost type
 < fwhost used
 < ipsec
 < ipsec network
 < ipsec no connections
-< last
 < least preferred
 < lifetime
 < mac filter
 < modem sim information
 < modem status
 < most preferred
+< MTU settings
+< never
 < no hardware random number generator
 < not a valid dh key
 < notice
+< Number of Countries for the pie chart
 < openvpn default
 < openvpn destination port used
 < openvpn disabled
 < outgoing firewall view group
 < ovpn crypt options
 < ovpn dh
-< ovpn dh name
+< ovpn dh new key
+< ovpn dh parameters
+< ovpn dh upload
+< ovpn engines
 < ovpn errmsg green already pushed
 < ovpn errmsg invalid ip or mask
 < ovpn generating the root and host certificates
 < ovpn mtu-disc yes
 < ovpn no connections
 < ovpn port in root range
+< ovpn reneg sec
 < ovpn routes push
 < ovpn routes push options
 < p2p block
 < proxy reports today
 < proxy reports weekly
 < qos enter bandwidths
+< random number generator daemon
 < red1
 < server restart
 < Set time on boot
 < show dh
 < snat new source ip address
 < software version
+< source ip country
 < ssh
 < static routes
 < support donation
 < tor use exit nodes
 < updxlrtr sources
 < updxlrtr standard view
-< uplink
 < upload dh key
 < uptime
 < uptime load average
 < age shour
 < age sminute
 < age ssecond
+< atm device
 < attention
 < bit
 < capabilities
 < deprecated fs warn
 < details
 < dh
+< dh key move failed
 < dh key warn
-< dh name is invalid
+< dh key warn1
 < dnat address
 < dnsforward
 < dnsforward add a new entry
 < dnsforward forward_server
 < dnsforward zone
 < dns servers
-< downlink
 < dpd delay
 < dpd timeout
 < drop action
 < extrahd unable to read
 < extrahd unable to write
 < extrahd you cant mount
+< firewall logs country
 < firewall rules
-< first
 < flag
 < forward firewall
 < fw default drop
 < fwhost cust addr
 < fwhost cust grp
 < fwhost cust net
+< fwhost Custom Host
+< fwhost Custom Network
 < fwhost cust service
 < fwhost cust srvgrp
 < fwhost deleted
 < fwhost ipadr
 < fwhost ip_mac
 < fwhost ipsec host
+< fwhost IpSec Host
 < fwhost ipsec net
+< fwhost IpSec Network
 < fwhost menu
 < fwhost netaddress
 < fwhost newgrp
 < fwhost newnet
 < fwhost newservice
 < fwhost newservicegrp
+< fwhost OpenVPN N-2-N
+< fwhost OpenVPN static host
+< fwhost OpenVPN static network
 < fwhost orange
 < fwhost ovpn_n2n
 < fwhost port
 < fwhost reset
 < fwhost services
 < fwhost srv_name
+< fwhost Standard Network
 < fwhost stdnet
 < fwhost type
 < fwhost used
 < ipsec
 < ipsec network
 < ipsec no connections
-< last
 < least preferred
 < lifetime
 < mac filter
 < modem sim information
 < modem status
 < most preferred
+< MTU settings
+< never
 < no hardware random number generator
 < not a valid dh key
 < notice
+< Number of Countries for the pie chart
 < openvpn default
 < openvpn destination port used
 < openvpn disabled
 < outgoing firewall access
 < ovpn crypt options
 < ovpn dh
-< ovpn dh name
+< ovpn dh new key
+< ovpn dh parameters
+< ovpn dh upload
+< ovpn engines
 < ovpn errmsg green already pushed
 < ovpn errmsg invalid ip or mask
 < ovpn generating the root and host certificates
 < ovpn mtu-disc yes
 < ovpn no connections
 < ovpn port in root range
+< ovpn reneg sec
 < ovpn routes push
 < ovpn routes push options
 < p2p block
 < proxy reports today
 < proxy reports weekly
 < qos enter bandwidths
+< random number generator daemon
 < red1
 < server restart
 < show dh
 < snat new source ip address
 < software version
+< source ip country
 < ssh
 < static routes
 < support donation
 < tor use exit nodes
 < updxlrtr sources
 < updxlrtr standard view
-< uplink
 < upload dh key
 < uptime
 < uptime load average
 < age shour
 < age sminute
 < age ssecond
+< atm device
 < attention
 < bit
 < capabilities
 < deprecated fs warn
 < details
 < dh
+< dh key move failed
 < dh key warn
-< dh name is invalid
+< dh key warn1
 < disk access per
 < dnat address
 < dnsforward
 < dnsforward forward_server
 < dnsforward zone
 < dns servers
-< downlink
 < dpd delay
 < dpd timeout
 < drop action
 < extrahd unable to read
 < extrahd unable to write
 < extrahd you cant mount
+< firewall logs country
 < firewall rules
-< first
 < flag
 < forward firewall
 < frequency
 < fwhost cust addr
 < fwhost cust grp
 < fwhost cust net
+< fwhost Custom Host
+< fwhost Custom Network
 < fwhost cust service
 < fwhost cust srvgrp
 < fwhost deleted
 < fwhost ipadr
 < fwhost ip_mac
 < fwhost ipsec host
+< fwhost IpSec Host
 < fwhost ipsec net
+< fwhost IpSec Network
 < fwhost menu
 < fwhost netaddress
 < fwhost newgrp
 < fwhost newnet
 < fwhost newservice
 < fwhost newservicegrp
+< fwhost OpenVPN N-2-N
+< fwhost OpenVPN static host
+< fwhost OpenVPN static network
 < fwhost orange
 < fwhost ovpn_n2n
 < fwhost port
 < fwhost reset
 < fwhost services
 < fwhost srv_name
+< fwhost Standard Network
 < fwhost stdnet
 < fwhost type
 < fwhost used
 < ipsec
 < ipsec network
 < ipsec no connections
-< last
 < least preferred
 < lifetime
 < mac filter
 < modem status
 < month-graph
 < most preferred
+< MTU settings
+< never
 < no hardware random number generator
 < not a valid dh key
 < notice
+< Number of Countries for the pie chart
 < openvpn default
 < openvpn destination port used
 < openvpn disabled
 < outgoing traffic in bytes per second
 < ovpn crypt options
 < ovpn dh
-< ovpn dh name
+< ovpn dh new key
+< ovpn dh parameters
+< ovpn dh upload
+< ovpn engines
 < ovpn generating the root and host certificates
 < ovpn ha
 < ovpn hmac
 < ovpn mtu-disc yes
 < ovpn no connections
 < ovpn port in root range
+< ovpn reneg sec
 < p2p block
 < p2p block save notice
 < proxy reports
 < proxy reports today
 < proxy reports weekly
 < qos enter bandwidths
+< random number generator daemon
 < red1
 < server restart
 < show dh
 < snat new source ip address
 < software version
+< source ip country
 < ssh
 < static routes
 < support donation
 < tor use exit nodes
 < updxlrtr sources
 < updxlrtr standard view
-< uplink
 < upload dh key
 < uptime
 < uptime load average
index 4e51ab6fd27ea8fb20e38e88ba4e74fe0fd51624..4b4bc63d7fbea9b346fe7dbeadfdc3a265e29a41 100644 (file)
@@ -253,8 +253,11 @@ $checked{'SERVICE'}{'nsupdate'} = '';
 $checked{'SERVICE'}{'ovh.com'} = '';
 $checked{'SERVICE'}{'regfish.com'} = '';
 $checked{'SERVICE'}{'selfhost.de'} = '';
+$checked{'SERVICE'}{'spdns.org'} = '';
 $checked{'SERVICE'}{'strato.com'} = '';
+$checked{'SERVICE'}{'twodns.de'} = '';
 $checked{'SERVICE'}{'tzo.com'} = '';
+$checked{'SERVICE'}{'variomedia.de'} = '';
 $checked{'SERVICE'}{'zoneedit.com'} = '';
 $checked{'SERVICE'}{$settings{'SERVICE'}} = "selected='selected'";
 
@@ -349,8 +352,11 @@ print <<END
     <option $checked{'SERVICE'}{'ovh.com'}>ovh.com</option>
     <option $checked{'SERVICE'}{'regfish.com'}>regfish.com</option>
     <option $checked{'SERVICE'}{'selfhost.de'}>selfhost.de</option>
+    <option $checked{'SERVICE'}{'spdns.org'}>spdns.org</option>
     <option $checked{'SERVICE'}{'strato.com'}>strato.com</option>
+    <option $checked{'SERVICE'}{'twodns.de'}>twodns.de</option>
 <!--    <option $checked{'SERVICE'}{'tzo.com'}>tzo.com</option>        comment this service out until a working fix is developed -->
+    <option $checked{'SERVICE'}{'variomedia.de'}>variomedia.de</option>
     <option $checked{'SERVICE'}{'zoneedit.com'}>zoneedit.com</option>
     </select></td>
     <td width='20%' class='base'>$Lang::tr{'hostname'}:&nbsp;<img src='/blob.gif' alt='*' /></td>
index bd3de82f8ceae283cff7a8b9129c52e8cd1ab5de..8e016b6cf6a8d93958f6e0c2902fba2d3f7514ce 100644 (file)
@@ -61,9 +61,27 @@ if ( $querry[0] ne~ "") {
                $message = $Lang::tr{'no hardware random number generator'};
        }
 
+       my $rngd_status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td>";
+       if (&rngd_is_running()) {
+               $rngd_status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td>";
+       }
+
        &Header::openbox('100%', 'center', $Lang::tr{'hardware support'});
        print <<EOF;
                <p style="color: $message_colour; text-align: center;">$message</p>
+
+               <table width='80%' cellspacing='1' class='tbl'>
+                       <tr>
+                               <th align='center'><b>$Lang::tr{'service'}</b></th>
+                               <th align='center'><b>$Lang::tr{'status'}</b></th>
+                       </tr>
+                       <tr>
+                               <td align='center'>
+                                       $Lang::tr{'random number generator daemon'}
+                               </td>
+                               $rngd_status
+                       </tr>
+               </table>
 EOF
        &Header::closebox();
 
@@ -87,3 +105,7 @@ sub has_rdrand() {
 
        return 0;
 }
+
+sub rngd_is_running() {
+       return (-e "/var/run/rngd.pid");
+}
index 53c7c1c1fe094150845007a95bb3e2d81d9560c2..e6ae5272a2c2f5f7bc382196c3c91bcaf631510e 100644 (file)
@@ -1334,7 +1334,7 @@ sub getcolor
                        return;
                }elsif($val =~ /^(.*?)\/(.*?)$/){
                        my ($sip,$scidr) = split ("/",$val);
-                       if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){
+                       if ( &Header::orange_used() && &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){
                                $tdcolor="style='background-color: $Header::colourorange;color:white;'";
                                return;
                        }
@@ -1342,7 +1342,7 @@ sub getcolor
                                $tdcolor="style='background-color: $Header::colourgreen;color:white;'";
                                return;
                        }
-                       if ( &General::IpInSubnet($sip,$netsettings{'BLUE_ADDRESS'},$netsettings{'BLUE_NETMASK'})){
+                       if ( &Header::blue_used() && &General::IpInSubnet($sip,$netsettings{'BLUE_ADDRESS'},$netsettings{'BLUE_NETMASK'})){
                                $tdcolor="style='background-color: $Header::colourblue;color:white;'";
                                return;
                        }
@@ -1539,6 +1539,7 @@ sub newrule
                                $selected{'ipfire'}{$fwdfwsettings{$fwdfwsettings{'grp2'}}} ='selected';
                                $selected{'ipfire_src'}{$fwdfwsettings{$fwdfwsettings{'grp1'}}} ='selected';
                                $selected{'dnat'}{$fwdfwsettings{'dnat'}}                               ='selected';
+                               $selected{'snat'}{$fwdfwsettings{'snat'}}                               ='selected';
                        }
                }
                $fwdfwsettings{'oldgrp1a'}=$fwdfwsettings{'grp1'};
@@ -1601,7 +1602,7 @@ END
                if (! -z "${General::swroot}/ethernet/aliases"){
                        foreach my $alias (sort keys %aliases)
                        {
-                               print "<option value='$alias' $selected{'ipfire_src'}{$alias}>$alias</option>";
+                               print "<option value='$alias' $selected{'ipfire_src'}{$alias}>$alias ($aliases{$alias}{'IPT'})</option>";
                        }
                }
                print<<END;
@@ -1705,7 +1706,7 @@ END
                if (! -z "${General::swroot}/ethernet/aliases"){
                        foreach my $alias (sort keys %aliases)
                        {
-                               print "<option value='$alias' $selected{'ipfire'}{$alias}>$alias</option>";
+                               print "<option value='$alias' $selected{'ipfire'}{$alias}>$alias ($aliases{$alias}{'IPT'})</option>";
                        }
                }
                print<<END;
@@ -2561,11 +2562,11 @@ END
                                                push (@nat_ifaces,&fwlib::get_nat_address($$hash{$key}[29],$val));
                                        }
                                        @nat_ifaces=&del_double(@nat_ifaces);
-                                       $natstring = join(', ', @nat_ifaces);
+                                       $natstring = "";
                                }else{
-                                       $natstring = $$hash{$key}[29];
+                                       $natstring = "($$hash{$key}[29])";
                                }
-                               print "$Lang::tr{'firewall'} ($natstring)";
+                               print "$Lang::tr{'firewall'} $natstring";
                                if($$hash{$key}[30] ne ''){
                                        $$hash{$key}[30]=~ tr/|/,/;
                                        print": $$hash{$key}[30]";
index e8ddf461e68b038145b38338c4cd8323bf7bf3a9..eeb83ac127bc216b3e7c10e7568c1c82cab7bdb4 100644 (file)
@@ -909,9 +909,6 @@ if ($fwhostsettings{'ACTION'} eq 'deletegrphost')
        }
        &General::writehasharray("$configgrp", \%customgrp);
        &General::firewall_config_changed();
-       if ($fwhostsettings{'grpcnt'} > 0){
-               &General::firewall_config_changed();
-       }
        if ($fwhostsettings{'update'} eq 'on'){
                $fwhostsettings{'remark'}= $grpremark;
                $fwhostsettings{'grp_name'}=$grpname;
@@ -1635,7 +1632,7 @@ sub getcolor
                }
 
                #Now check if IP is part of ORANGE,BLUE or GREEN
-               if ( &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){
+               if ( &Header::orange_used() && &General::IpInSubnet($sip,$netsettings{'ORANGE_ADDRESS'},$netsettings{'ORANGE_NETMASK'})){
                        $tdcolor="<font style='color: $Header::colourorange;'>$c</font>";
                        return $tdcolor;
                }
@@ -1643,7 +1640,7 @@ sub getcolor
                        $tdcolor="<font style='color: $Header::colourgreen;'>$c</font>";
                        return $tdcolor;
                }
-               if ( &General::IpInSubnet($sip,$netsettings{'BLUE_ADDRESS'},$netsettings{'BLUE_NETMASK'})){
+               if ( &Header::blue_used() && &General::IpInSubnet($sip,$netsettings{'BLUE_ADDRESS'},$netsettings{'BLUE_NETMASK'})){
                        $tdcolor="<font style='color: $Header::colourblue;'>$c</font>";
                        return $tdcolor;
                }
@@ -1843,11 +1840,11 @@ sub viewtablegrp
                                print "$customgrp{$key}[2]</td>";
                        }
                        if ($ip eq '' && $customgrp{$key}[2] ne $Lang::tr{'fwhost err emptytable'}){
-                               print "<td align='center' $col>$Lang::tr{'fwhost deleted'}</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>";
+                               print "<td align='center' $col>$Lang::tr{'fwhost deleted'}</td><td align='center' $col>$Lang::tr{'fwhost '.$customgrp{$key}[3]}</td><td width='1%' $col><form method='post'>";
                        }else{
                                my ($colip,$colsub) = split("/",$ip);
                                $ip="$colip/".&General::iporsubtocidr($colsub) if ($colsub);
-                               print"<td align='center' $col>".&getcolor($ip)."</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>";
+                               print"<td align='center' $col>".&getcolor($ip)."</td><td align='center' $col>$Lang::tr{'fwhost '.$customgrp{$key}[3]}</td><td width='1%' $col><form method='post'>";
                        }
                        if ($delflag > 0 && $ip ne ''){
                                print"<input type='image' src='/images/delete.gif' align='middle' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' />";
@@ -1858,8 +1855,7 @@ sub viewtablegrp
                                        }
                                }
                        }
-                       print"<input type='hidden' name='ACTION' value='deletegrphost'><input type='hidden' name='grpcnt' value='$customgrp{$key}[4]'><input type='hidden' name='update' value='$fwhostsettings{'update'}'><input type='hidden' name='delhost' value='$grpname,$remark,$customgrp{$key}[2],$customgrp{$key}[3]'></form></td></tr>";
-                       
+                       print"<input type='hidden' name='ACTION' value='deletegrphost'><input type='hidden' name='update' value='$fwhostsettings{'update'}'><input type='hidden' name='delhost' value='$grpname,$remark,$customgrp{$key}[2],$customgrp{$key}[3]'></form></td></tr>";
                        $helper=$customgrp{$key}[0];
                        $number++;
                }
index 55e2645061c659ba7406cd83d5e39ad25258a63a..5a28daaedd2b5118b554b29f70429f5fc395bd5d 100644 (file)
@@ -263,9 +263,9 @@ if (-e "/etc/snort/snort.conf") {
 #######################  End added for snort rules control  #################################
 
 if ($snortsettings{'RULES'} eq 'subscripted') {
-       $url=" http://www.snort.org/sub-rules/snortrules-snapshot-2953.tar.gz/$snortsettings{'OINKCODE'}";
+       $url=" http://www.snort.org/sub-rules/snortrules-snapshot-2961.tar.gz/$snortsettings{'OINKCODE'}";
 } elsif ($snortsettings{'RULES'} eq 'registered') {
-       $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2950.tar.gz/$snortsettings{'OINKCODE'}";
+       $url=" http://www.snort.org/reg-rules/snortrules-snapshot-2960.tar.gz/$snortsettings{'OINKCODE'}";
 } elsif ($snortsettings{'RULES'} eq 'community') {
        $url=" http://s3.amazonaws.com/snort-org/www/rules/community/community-rules.tar.gz";
 } else {
index dec27b722c68587c2c96552391f352de09168119..0e8fad888573f8d8c2b2056062c040a09434abe2 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2013  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2014  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -19,7 +19,7 @@
 #                                                                             #
 ###############################################################################
 ###
-# Based on IPFireCore 76
+# Based on IPFireCore 77
 ###
 use CGI;
 use CGI qw/:standard/;
@@ -90,8 +90,9 @@ $cgiparams{'DCOMPLZO'} = 'off';
 $cgiparams{'MSSFIX'} = '';
 $cgiparams{'number'} = '';
 $cgiparams{'PMTU_DISCOVERY'} = '';
-$cgiparams{'DAUTH'} = '';
 $cgiparams{'DCIPHER'} = '';
+$cgiparams{'DAUTH'} = '';
+$cgiparams{'TLSAUTH'} = '';
 $routes_push_file = "${General::swroot}/ovpn/routes_push";
 unless (-e $routes_push_file)    { system("touch $routes_push_file"); }
 unless (-e "${General::swroot}/ovpn/ccd.conf")    { system("touch ${General::swroot}/ovpn/ccd.conf"); }
@@ -171,61 +172,6 @@ sub deletebackupcert
                unlink ("${General::swroot}/ovpn/certs/$hexvalue.pem");
        }
 }
-sub checkportfw {
-       my $DPORT = shift;
-       my $DPROT = shift;
-       my %natconfig =();
-       my $confignat = "${General::swroot}/firewall/config";
-       $DPROT= uc ($DPROT);
-       &General::readhasharray($confignat, \%natconfig);
-       foreach my $key (sort keys %natconfig){
-               my @portarray = split (/\|/,$natconfig{$key}[30]);
-               foreach my $value (@portarray){
-                       if ($value =~ /:/i){
-                               my ($a,$b) = split (":",$value);
-                               if ($DPROT eq $natconfig{$key}[12] && $DPORT gt $a && $DPORT lt $b){
-                                       $errormessage= "$Lang::tr{'source port in use'} $DPORT";
-                               }
-                       }else{
-                               if ($DPROT eq $natconfig{$key}[12] && $DPORT eq $value){
-                                       $errormessage= "$Lang::tr{'source port in use'} $DPORT";
-                               }
-                       }
-               }
-       }
-       return;
-}
-
-sub checkportoverlap
-{
-       my $portrange1 = $_[0]; # New port range
-       my $portrange2 = $_[1]; # existing port range
-       my @tempr1 = split(/\:/,$portrange1);
-       my @tempr2 = split(/\:/,$portrange2);
-
-       unless (&checkportinc($tempr1[0], $portrange2)){ return 0;}
-       unless (&checkportinc($tempr1[1], $portrange2)){ return 0;}
-       
-       unless (&checkportinc($tempr2[0], $portrange1)){ return 0;}
-       unless (&checkportinc($tempr2[1], $portrange1)){ return 0;}
-
-       return 1; # Everything checks out!
-}
-
-# Darren Critchley - we want to make sure that a port entry is not within an already existing range
-sub checkportinc
-{
-       my $port1 = $_[0]; # Port
-       my $portrange2 = $_[1]; # Port range
-       my @tempr1 = split(/\:/,$portrange2);
-
-       if ($port1 < $tempr1[0] || $port1 > $tempr1[1]) {
-               return 1; 
-       } else {
-               return 0; 
-       }
-}
-
 
 sub writeserverconf {
     my %sovpnsettings = ();  
@@ -251,7 +197,7 @@ sub writeserverconf {
     print CONF "ca ${General::swroot}/ovpn/ca/cacert.pem\n";
     print CONF "cert ${General::swroot}/ovpn/certs/servercert.pem\n";
     print CONF "key ${General::swroot}/ovpn/certs/serverkey.pem\n";
-       print CONF "dh ${General::swroot}/ovpn/ca/dh1024.pem\n";
+    print CONF "dh ${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}\n";
     my @tempovpnsubnet = split("\/",$sovpnsettings{'DOVPN_SUBNET'});
     print CONF "server $tempovpnsubnet[0] $tempovpnsubnet[1]\n";
     #print CONF "push \"route $netsettings{'GREEN_NETADDRESS'} $netsettings{'GREEN_NETMASK'}\"\n";
@@ -321,8 +267,11 @@ sub writeserverconf {
     if ($sovpnsettings{'DAUTH'} eq '') {
         print CONF "";
     } else {
-           print CONF "auth $sovpnsettings{'DAUTH'}\n";
-       }
+       print CONF "auth $sovpnsettings{'DAUTH'}\n";
+    }
+    if ($sovpnsettings{'TLSAUTH'} eq 'on') {
+       print CONF "tls-auth ${General::swroot}/ovpn/certs/ta.key\n";
+    }
     if ($sovpnsettings{DCOMPLZO} eq 'on') {
         print CONF "comp-lzo\n";
     }
@@ -742,6 +691,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save-adv-options'}) {
     $vpnsettings{'ROUTES_PUSH'} = $cgiparams{'ROUTES_PUSH'};
     $vpnsettings{'PMTU_DISCOVERY'} = $cgiparams{'PMTU_DISCOVERY'};
     $vpnsettings{'DAUTH'} = $cgiparams{'DAUTH'};
+    $vpnsettings{'TLSAUTH'} = $cgiparams{'TLSAUTH'};
     my @temp=();
     
     if ($cgiparams{'FRAGMENT'} eq '') {
@@ -754,6 +704,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save-adv-options'}) {
                        $vpnsettings{'FRAGMENT'} = $cgiparams{'FRAGMENT'};
        }
     }
+
     if ($cgiparams{'MSSFIX'} ne 'on') {
        delete $vpnsettings{'MSSFIX'};
     } else {
@@ -858,6 +809,16 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save-adv-options'}) {
         $errormessage = $Lang::tr{'invalid input for keepalive 1:2'};
         goto ADV_ERROR;        
     }
+    # Create ta.key for tls-auth if not presant
+    if ($cgiparams{'TLSAUTH'} eq 'on') {
+       if ( ! -e "${General::swroot}/ovpn/certs/ta.key") {
+               system('/usr/sbin/openvpn', '--genkey', '--secret', "${General::swroot}/ovpn/certs/ta.key");
+               if ($?) {
+               $errormessage = "$Lang::tr{'openssl produced an error'}: $?";
+        goto ADV_ERROR;
+               }
+       }
+    }
     
     &General::writehash("${General::swroot}/ovpn/settings", \%vpnsettings);
     &writeserverconf();#hier ok
@@ -936,11 +897,15 @@ unless(-d "${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}"){mkdir "${General
   print SERVERCONF "ca ${General::swroot}/ovpn/ca/cacert.pem\n"; 
   print SERVERCONF "cert ${General::swroot}/ovpn/certs/servercert.pem\n"; 
   print SERVERCONF "key ${General::swroot}/ovpn/certs/serverkey.pem\n"; 
-  print SERVERCONF "dh ${General::swroot}/ovpn/ca/dh1024.pem\n";
+  print SERVERCONF "dh ${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}\n";
   print SERVERCONF "# Cipher\n"; 
   print SERVERCONF "cipher $cgiparams{'DCIPHER'}\n";
-  print SERVERCONF "# HMAC algorithm\n";
-  print SERVERCONF "auth $cgiparams{'DAUTH'}\n";
+  if ($cgiparams{'DAUTH'} eq '') {
+       print SERVERCONF "auth SHA1\n";
+  } else {
+       print SERVERCONF "# HMAC algorithm\n";
+       print SERVERCONF "auth $cgiparams{'DAUTH'}\n";
+  }
   if ($cgiparams{'COMPLZO'} eq 'on') {
    print SERVERCONF "# Enable Compression\n";
    print SERVERCONF "comp-lzo\r\n";
@@ -1029,9 +994,13 @@ unless(-d "${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}"){mkdir "${General
   print CLIENTCONF "tls-client\n"; 
   print CLIENTCONF "# Cipher\n"; 
   print CLIENTCONF "cipher $cgiparams{'DCIPHER'}\n";
-  print CLIENTCONF "# HMAC algorithm\n";
-  print CLIENTCONF "auth $cgiparams{'DAUTH'}\n";
   print CLIENTCONF "pkcs12 ${General::swroot}/ovpn/certs/$cgiparams{'NAME'}.p12\r\n";
+  if ($cgiparams{'DAUTH'} eq '') {
+       print CLIENTCONF "auth SHA1\n";
+  } else {
+       print CLIENTCONF "# HMAC algorithm\n";
+       print CLIENTCONF "auth $cgiparams{'DAUTH'}\n";
+  }
   if ($cgiparams{'COMPLZO'} eq 'on') {
    print CLIENTCONF "# Enable Compression\n";
    print CLIENTCONF "comp-lzo\r\n";
@@ -1066,11 +1035,6 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg
        }
     }
     if ($errormessage) { goto SETTINGS_ERROR; }
-
-    if ($cgiparams{'ENABLED'} eq 'on'){
-       &checkportfw($cgiparams{'DDEST_PORT'},$cgiparams{'DPROTOCOL'});
-    }
-    if ($errormessage) { goto SETTINGS_ERROR; }
     
     if (! &General::validipandmask($cgiparams{'DOVPN_SUBNET'})) {
             $errormessage = $Lang::tr{'ovpn subnet is invalid'};
@@ -1165,41 +1129,43 @@ SETTINGS_ERROR:
        }
     }
     while ($file = glob("${General::swroot}/ovpn/ca/*")) {
-               unlink $file
+       unlink $file;
     }
     while ($file = glob("${General::swroot}/ovpn/certs/*")) {
-               unlink $file
+       unlink $file;
     }
     while ($file = glob("${General::swroot}/ovpn/crls/*")) {
-               unlink $file
+       unlink $file;
     }
        &cleanssldatabase();
     if (open(FILE, ">${General::swroot}/ovpn/caconfig")) {
         print FILE "";
         close FILE;
     }
-       if (open(FILE, ">${General::swroot}/ovpn/ccdroute")) {
-               print FILE "";
-               close FILE;
-       }
-       if (open(FILE, ">${General::swroot}/ovpn/ccdroute2")) {
-               print FILE "";
-               close FILE;
-       }
-       while ($file = glob("${General::swroot}/ovpn/ccd/*")) {
-               unlink $file
-       }
-       if (open(FILE, ">${General::swroot}/ovpn/ovpn-leases.db")) {
-               print FILE "";
-               close FILE;
-       }
-       if (open(FILE, ">${General::swroot}/ovpn/ovpnconfig")) {
-               print FILE "";
-               close FILE;
-       }
-       while ($file = glob("${General::swroot}/ovpn/n2nconf/*")) {
-               system ("rm -rf $file")
-       }
+    if (open(FILE, ">${General::swroot}/ovpn/ccdroute")) {
+       print FILE "";
+       close FILE;
+    }
+    if (open(FILE, ">${General::swroot}/ovpn/ccdroute2")) {
+       print FILE "";
+       close FILE;
+    }
+    while ($file = glob("${General::swroot}/ovpn/ccd/*")) {
+       unlink $file
+    }
+    if (open(FILE, ">${General::swroot}/ovpn/ovpn-leases.db")) {
+       print FILE "";
+       close FILE;
+    }
+    if (open(FILE, ">${General::swroot}/ovpn/ovpnconfig")) {
+       print FILE "";
+       close FILE;
+    }
+    while ($file = glob("${General::swroot}/ovpn/n2nconf/*")) {
+       system ("rm -rf $file");
+    }
+
+    #&writeserverconf();
 ###
 ### Reset all step 1
 ###
@@ -1214,7 +1180,7 @@ SETTINGS_ERROR:
                        <tr>
                                <td align='center'>
                                <input type='hidden' name='AREUSURE' value='yes' />
-                               <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}</font></b>: 
+                               <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}</font></b>:
                                $Lang::tr{'resetting the vpn configuration will remove the root ca, the host certificate and all certificate based connections'}</td>
                        </tr>
                        <tr>
@@ -1234,7 +1200,7 @@ END
 ### Generate DH key step 2
 ###
 } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'generate dh key'} && $cgiparams{'AREUSURE'} eq 'yes') {
-       # Delete if old key exists
+    # Delete if old key exists
     if (-f "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}") {
         unlink "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}";
        }
@@ -1257,8 +1223,8 @@ END
        print <<END;
        <table width='100%'>
        <tr>
-               <td width='15%'> </td> <td width='15%'></td> <td width='65%'></td>
-    </tr>
+               <td width='20%'> </td> <td width='15%'></td> <td width='65%'></td>
+       </tr>
        <tr>
                <td class='base'>$Lang::tr{'ovpn dh'}:</td>
                <td align='center'>
@@ -1276,10 +1242,12 @@ END
        </table>
        <table width='100%'>
        <tr>
-               <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}:</font></b>
-               $Lang::tr{'dh key warn'}
-               </td>
+               <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}: </font></b>$Lang::tr{'dh key warn'}
+       </tr>
+       <tr>
+               <td class='base'>$Lang::tr{'dh key warn1'}</td>
        </tr>
+       <tr><td colspan='2'><br></td></tr>
        <tr>
                <td align='center'><input type='submit' name='ACTION' value='$Lang::tr{'generate dh key'}' /></td>
                </form>
@@ -1298,21 +1266,17 @@ END
 ### Upload DH key
 ###
 } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'upload dh key'}) {
-    if ($cgiparams{'DH_NAME'} !~ /dh1024.pem/) {
-        $errormessage = $Lang::tr{'dh name is invalid'};
-        goto UPLOADCA_ERROR;
-       }
     if (ref ($cgiparams{'FH'}) ne 'Fh') {
          $errormessage = $Lang::tr{'there was no file upload'};
          goto UPLOADCA_ERROR;
     }
-       # Move uploaded dh key to a temporary file
+    # Move uploaded dh key to a temporary file
     (my $fh, my $filename) = tempfile( );
     if (copy ($cgiparams{'FH'}, $fh) != 1) {
         $errormessage = $!;
-           goto UPLOADCA_ERROR;
+       goto UPLOADCA_ERROR;
     }
-       my $temp = `/usr/bin/openssl dhparam -text -in $filename`;
+    my $temp = `/usr/bin/openssl dhparam -text -in $filename`;
     if ($temp !~ /DH Parameters: \((1024|2048|3072|4096) bit\)/) {
         $errormessage = $Lang::tr{'not a valid dh key'};
         unlink ($filename);
@@ -1323,11 +1287,11 @@ END
         unlink "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}";
        }
     move($filename, "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}");
-               if ($? ne 0) {
-                       $errormessage = "$Lang::tr{'certificate file move failed'}: $!";
-                       unlink ($filename);
-                       goto UPLOADCA_ERROR;
-               }
+       if ($? ne 0) {
+               $errormessage = "$Lang::tr{'dh key move failed'}: $!";
+               unlink ($filename);
+               goto UPLOADCA_ERROR;
+       }
     }
 
 ###
@@ -1784,7 +1748,7 @@ END
            }
        } else {        # child
            unless (exec ('/usr/bin/openssl', 'req', '-x509', '-nodes', '-rand', '/proc/interrupts:/proc/net/rt_cache',
-                       '-days', '999999', '-newkey', 'rsa:4096',
+                       '-days', '999999', '-newkey', 'rsa:4096', '-sha512',
                        '-keyout', "${General::swroot}/ovpn/ca/cakey.pem",
                        '-out', "${General::swroot}/ovpn/ca/cacert.pem",
                        '-config',"${General::swroot}/ovpn/openssl/ovpn.cnf")) {
@@ -1879,7 +1843,14 @@ END
            goto ROOTCERT_ERROR;
 #      } else {
 #          &cleanssldatabase();
-       }       
+       }
+       # Create ta.key for tls-auth
+       system('/usr/sbin/openvpn', '--genkey', '--secret', "${General::swroot}/ovpn/certs/ta.key");
+       if ($?) {
+           $errormessage = "$Lang::tr{'openssl produced an error'}: $?";
+           &cleanssldatabase();
+           goto ROOTCERT_ERROR;
+       }
        goto ROOTCERT_SUCCESS;
     }
     ROOTCERT_ERROR:
@@ -1894,7 +1865,7 @@ END
            &Header::closebox();
        }
        &Header::openbox('100%', 'LEFT', "$Lang::tr{'generate root/host certificates'}:");
-    print <<END;
+       print <<END;
        <form method='post' enctype='multipart/form-data'>
        <table width='100%' border='0' cellspacing='1' cellpadding='0'>
        <tr><td width='30%' class='base'>$Lang::tr{'organization name'}:</td>
@@ -1927,8 +1898,8 @@ END
            }
            print ">$country</option>";
        }
-    print <<END;
-       </select></td>
+       print <<END;
+           </select></td>
        <tr><td class='base'>$Lang::tr{'ovpn dh'}:</td>
                <td class='base'><select name='DHLENGHT'>
                                <option value='1024' $selected{'DHLENGHT'}{'1024'}>1024 $Lang::tr{'bit'}</option>
@@ -1944,17 +1915,20 @@ END
            <td>&nbsp;</td><td>&nbsp;</td></tr> 
        <tr><td class='base' colspan='4' align='left'>
            <img src='/blob.gif' valign='top' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td></tr>
-       <tr><td colspan='4'><br><br></td></tr>
-       <tr><td class='base' colspan='4' align='center'>
-           <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}:</font></b>
-               $Lang::tr{'ovpn generating the root and host certificates'}
-               </td>
+       <tr><td colspan='2'><br></td></tr>
+       <table width='100%'>
+       <tr>
+               <b><font color='${Header::colourred}'>$Lang::tr{'capswarning'}: </font></b>$Lang::tr{'ovpn generating the root and host certificates'}
+               <td class='base'>$Lang::tr{'dh key warn'}</td>
        </tr>
-       <tr><td class='base' colspan='4' align='center'>
-               $Lang::tr{'dh key warn'}
-               </td>
+       <tr>
+               <td class='base'>$Lang::tr{'dh key warn1'}</td>
        </tr>
+       <tr><td colspan='2'><br></td></tr>
+       <tr>
+       </table>
 
+       <table width='100%'>
        <tr><td colspan='4'><hr></td></tr>
        <tr><td class='base' nowrap='nowrap'>$Lang::tr{'upload p12 file'}:</td>
            <td nowrap='nowrap'><input type='file' name='FH' size='32'></td>
@@ -2104,14 +2078,19 @@ if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){
    print CLIENTCONF "ns-cert-type server\n";   
    print CLIENTCONF "# Auth. Client\n"; 
    print CLIENTCONF "tls-client\n"; 
-   print CLIENTCONF "# Cipher\n"; 
+   print CLIENTCONF "# Cipher\n";
    print CLIENTCONF "cipher $confighash{$cgiparams{'KEY'}}[40]\n";
-   print CLIENTCONF "# HMAC algorithm\n";
-   print CLIENTCONF "auth $confighash{$cgiparams{'KEY'}}[39]\n";
     if ($confighash{$cgiparams{'KEY'}}[4] eq 'cert' && -f "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12") { 
         print CLIENTCONF "pkcs12 ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12\r\n";
      $zip->addFile( "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12", "$confighash{$cgiparams{'KEY'}}[1].p12") or die "Can't add file $confighash{$cgiparams{'KEY'}}[1].p12\n";
-   } 
+   }
+   if ($confighash{$cgiparams{'KEY'}}[39] eq '') {
+       print CLIENTCONF "# HMAC algorithm\n";
+       print CLIENTCONF "auth SHA1\n";
+   } else {
+   print CLIENTCONF "# HMAC algorithm\n";
+   print CLIENTCONF "auth $confighash{$cgiparams{'KEY'}}[39]\n";
+   }
    if ($confighash{$cgiparams{'KEY'}}[30] eq 'on') {
    print CLIENTCONF "# Enable Compression\n";
    print CLIENTCONF "comp-lzo\r\n";
@@ -2207,11 +2186,15 @@ else
        $zip->addFile( "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem", "$confighash{$cgiparams{'KEY'}}[1]cert.pem") or die "Can't add file $confighash{$cgiparams{'KEY'}}[1]cert.pem\n";    
     }
     print CLIENTCONF "cipher $vpnsettings{DCIPHER}\r\n";
-       if ($vpnsettings{'DAUTH'} eq '') {
+    if ($vpnsettings{'DAUTH'} eq '') {
         print CLIENTCONF "";
     } else {
-           print CLIENTCONF "auth $vpnsettings{'DAUTH'}\r\n";
-       }
+       print CLIENTCONF "auth $vpnsettings{'DAUTH'}\r\n";
+    }
+    if ($vpnsettings{'TLSAUTH'} eq 'on') {
+       print CLIENTCONF "tls-auth ta.key\r\n";
+       $zip->addFile( "${General::swroot}/ovpn/certs/ta.key", "ta.key")  or die "Can't add file ta.key\n";
+    }
     if ($vpnsettings{DCOMPLZO} eq 'on') {
         print CLIENTCONF "comp-lzo\r\n";
     }
@@ -2320,8 +2303,7 @@ if ($confighash{$cgiparams{'KEY'}}[3] eq 'net') {
     } else {
        $errormessage = $Lang::tr{'invalid key'};
     }
-
-    &General::firewall_reload();
+       &General::firewall_reload();
 
 ###
 ### Download PKCS12 file
@@ -2361,7 +2343,7 @@ if ($confighash{$cgiparams{'KEY'}}[3] eq 'net') {
 } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'show dh'}) {
 
     if (! -e "${General::swroot}/ovpn/ca/dh1024.pem") {
-               $errormessage = $Lang::tr{'not present'};
+       $errormessage = $Lang::tr{'not present'};
        } else {
                &Header::showhttpheaders();
                &Header::openpage($Lang::tr{'ovpn'}, 1, '');
@@ -2383,21 +2365,21 @@ if ($confighash{$cgiparams{'KEY'}}[3] eq 'net') {
 } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'show crl'}) {
 #    &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
 
-       if (! -e "${General::swroot}/ovpn/crls/cacrl.pem") {
-               $errormessage = $Lang::tr{'not present'};
+    if (! -e "${General::swroot}/ovpn/crls/cacrl.pem") {
+       $errormessage = $Lang::tr{'not present'};
        } else {
-        &Header::showhttpheaders();
-           &Header::openpage($Lang::tr{'ovpn'}, 1, '');
-           &Header::openbigbox('100%', 'LEFT', '', '');
-           &Header::openbox('100%', 'LEFT', "$Lang::tr{'crl'}:");
-           my $output = `/usr/bin/openssl crl -text -noout -in ${General::swroot}/ovpn/crls/cacrl.pem`;
-           $output = &Header::cleanhtml($output,"y");
-           print "<pre>$output</pre>\n";
-           &Header::closebox();
-           print "<div align='center'><a href='/cgi-bin/ovpnmain.cgi'>$Lang::tr{'back'}</a></div>";
-           &Header::closebigbox();
-           &Header::closepage();
-           exit(0);
+       &Header::showhttpheaders();
+       &Header::openpage($Lang::tr{'ovpn'}, 1, '');
+       &Header::openbigbox('100%', 'LEFT', '', '');
+       &Header::openbox('100%', 'LEFT', "$Lang::tr{'crl'}:");
+       my $output = `/usr/bin/openssl crl -text -noout -in ${General::swroot}/ovpn/crls/cacrl.pem`;
+       $output = &Header::cleanhtml($output,"y");
+       print "<pre>$output</pre>\n";
+       &Header::closebox();
+       print "<div align='center'><a href='/cgi-bin/ovpnmain.cgi'>$Lang::tr{'back'}</a></div>";
+       &Header::closebigbox();
+       &Header::closepage();
+       exit(0);
     }
 
 ###
@@ -2435,6 +2417,9 @@ ADV_ERROR:
     if ($cgiparams{'DAUTH'} eq '') {
                $cgiparams{'DAUTH'} = 'SHA1';
     }
+    if ($cgiparams{'TLSAUTH'} eq '') {
+               $cgiparams{'TLSAUTH'} = 'off';
+    }
     $checked{'CLIENT2CLIENT'}{'off'} = '';
     $checked{'CLIENT2CLIENT'}{'on'} = '';
     $checked{'CLIENT2CLIENT'}{$cgiparams{'CLIENT2CLIENT'}} = 'CHECKED';
@@ -2445,6 +2430,7 @@ ADV_ERROR:
     $checked{'MSSFIX'}{'on'} = '';
     $checked{'MSSFIX'}{$cgiparams{'MSSFIX'}} = 'CHECKED';
     $checked{'PMTU_DISCOVERY'}{$cgiparams{'PMTU_DISCOVERY'}} = 'checked=\'checked\'';
+    $selected{'LOG_VERB'}{'0'} = '';
     $selected{'LOG_VERB'}{'1'} = '';
     $selected{'LOG_VERB'}{'2'} = '';
     $selected{'LOG_VERB'}{'3'} = '';
@@ -2456,16 +2442,17 @@ ADV_ERROR:
     $selected{'LOG_VERB'}{'9'} = '';
     $selected{'LOG_VERB'}{'10'} = '';
     $selected{'LOG_VERB'}{'11'} = '';
-    $selected{'LOG_VERB'}{'0'} = '';
     $selected{'LOG_VERB'}{$cgiparams{'LOG_VERB'}} = 'SELECTED';
     $selected{'DAUTH'}{'whirlpool'} = '';
     $selected{'DAUTH'}{'SHA512'} = '';
     $selected{'DAUTH'}{'SHA384'} = '';
     $selected{'DAUTH'}{'SHA256'} = '';
-    $selected{'DAUTH'}{'ecdsa-with-SHA1'} = '';
     $selected{'DAUTH'}{'SHA1'} = '';
     $selected{'DAUTH'}{$cgiparams{'DAUTH'}} = 'SELECTED';
-
+    $checked{'TLSAUTH'}{'off'} = '';
+    $checked{'TLSAUTH'}{'on'} = '';
+    $checked{'TLSAUTH'}{$cgiparams{'TLSAUTH'}} = 'CHECKED';
+   
     &Header::showhttpheaders();
     &Header::openpage($Lang::tr{'status ovpn'}, 1, '');
     &Header::openbigbox('100%', 'LEFT', '', $errormessage);    
@@ -2478,7 +2465,7 @@ ADV_ERROR:
     &Header::openbox('100%', 'LEFT', $Lang::tr{'advanced server'});
     print <<END;
     <form method='post' enctype='multipart/form-data'>
-    <table width='100%' border='0'>
+<table width='100%' border=0>
        <tr>
                <td colspan='4'><b>$Lang::tr{'dhcp-options'}</b></td>
     </tr>
@@ -2546,12 +2533,13 @@ print <<END;
        <tr>
          <td class='base'>fragment <br></td>
          <td><input type='TEXT' name='FRAGMENT' value='$cgiparams{'FRAGMENT'}' size='10' /></td>
-       </tr>
-       <tr>
+      </tr>
+       <tr>
          <td class='base'>mssfix</td>
          <td><input type='checkbox' name='MSSFIX' $checked{'MSSFIX'}{'on'} /></td>
-             <td>$Lang::tr{'openvpn default'}: on</td>
-       </tr>
+         <td>$Lang::tr{'openvpn default'}: off</td>
+         </tr>
+
        <tr>
                <td class='base'>$Lang::tr{'ovpn mtu-disc'}</td>
                <td><input type='radio' name='PMTU_DISCOVERY' value='yes' $checked{'PMTU_DISCOVERY'}{'yes'} /> $Lang::tr{'ovpn mtu-disc yes'}</td>
@@ -2564,30 +2552,28 @@ print <<END;
 <hr size='1'>
 <table width='100%'>
     <tr>
-               <td class'base'><b>$Lang::tr{'log-options'}</b></td>
+       <td class'base'><b>$Lang::tr{'log-options'}</b></td>
     </tr>
     <tr>
-               <td width='20%'></td> <td width='30%'> </td><td width='25%'> </td><td width='25%'></td>
+       <td width='20%'></td> <td width='30%'> </td><td width='25%'> </td><td width='25%'></td>
     </tr>
 
     <tr><td class='base'>VERB</td>
         <td><select name='LOG_VERB'>
-                               <option value='0'  $selected{'LOG_VERB'}{'0'}>0</option>
-                               <option value='1'  $selected{'LOG_VERB'}{'1'}>1</option>
-                               <option value='2'  $selected{'LOG_VERB'}{'2'}>2</option>
-                               <option value='3'  $selected{'LOG_VERB'}{'3'}>3</option>
-                               <option value='4'  $selected{'LOG_VERB'}{'4'}>4</option>
-                               <option value='5'  $selected{'LOG_VERB'}{'5'}>5</option>
-                               <option value='6'  $selected{'LOG_VERB'}{'6'}>6</option>
-                               <option value='7'  $selected{'LOG_VERB'}{'7'}>7</option>
-                               <option value='8'  $selected{'LOG_VERB'}{'8'}>8</option>
-                               <option value='9'  $selected{'LOG_VERB'}{'9'}>9</option>
-                               <option value='10' $selected{'LOG_VERB'}{'10'}>10</option>
-                               <option value='11' $selected{'LOG_VERB'}{'11'}>11</option>
-                       </select>
-               </td>
-       </tr>
-</table>
+                       <option value='0'  $selected{'LOG_VERB'}{'0'}>0</option>
+                       <option value='1'  $selected{'LOG_VERB'}{'1'}>1</option>
+                       <option value='2'  $selected{'LOG_VERB'}{'2'}>2</option>
+                       <option value='3'  $selected{'LOG_VERB'}{'3'}>3</option>
+                       <option value='4'  $selected{'LOG_VERB'}{'4'}>4</option>
+                       <option value='5'  $selected{'LOG_VERB'}{'5'}>5</option>
+                       <option value='6'  $selected{'LOG_VERB'}{'6'}>6</option>
+                       <option value='7'  $selected{'LOG_VERB'}{'7'}>7</option>
+                       <option value='8'  $selected{'LOG_VERB'}{'8'}>8</option>
+                       <option value='9'  $selected{'LOG_VERB'}{'9'}>9</option>
+                       <option value='10' $selected{'LOG_VERB'}{'10'}>10</option>
+                       <option value='11' $selected{'LOG_VERB'}{'11'}>11</option>
+       </td></select>
+    </table>
 
 <hr size='1'>
 <table width='100%'>
@@ -2599,24 +2585,34 @@ print <<END;
     </tr>      
     <tr><td class='base'>$Lang::tr{'ovpn ha'}</td>
                <td><select name='DAUTH'>
-                               <option value='whirlpool'                       $selected{'DAUTH'}{'whirlpool'}>Whirlpool (512 $Lang::tr{'bit'})</option>
-                               <option value='SHA512'                          $selected{'DAUTH'}{'SHA512'}>SHA2 (512 $Lang::tr{'bit'})</option>
-                               <option value='SHA384'                          $selected{'DAUTH'}{'SHA384'}>SHA2 (384 $Lang::tr{'bit'})</option>
-                               <option value='SHA256'                          $selected{'DAUTH'}{'SHA256'}>SHA2 (256 $Lang::tr{'bit'})</option>
-                               <option value='ecdsa-with-SHA1'         $selected{'DAUTH'}{'ecdsa-with-SHA1'}>ECDSA-SHA1 (160 $Lang::tr{'bit'})</option>
-                               <option value='SHA1'                            $selected{'DAUTH'}{'SHA1'}>SHA1 (160 $Lang::tr{'bit'})</option>
+                               <option value='whirlpool'               $selected{'DAUTH'}{'whirlpool'}>Whirlpool (512 $Lang::tr{'bit'})</option>
+                               <option value='SHA512'                  $selected{'DAUTH'}{'SHA512'}>SHA2 (512 $Lang::tr{'bit'})</option>
+                               <option value='SHA384'                  $selected{'DAUTH'}{'SHA384'}>SHA2 (384 $Lang::tr{'bit'})</option>
+                               <option value='SHA256'                  $selected{'DAUTH'}{'SHA256'}>SHA2 (256 $Lang::tr{'bit'})</option>
+                               <option value='SHA1'                    $selected{'DAUTH'}{'SHA1'}>SHA1 (160 $Lang::tr{'bit'})</option>
                        </select>
                </td>
-               <td>Default: <span class="base">SHA1 (160 $Lang::tr{'bit'})</span></td>
-</table><hr>
+               <td>$Lang::tr{'openvpn default'}: <span class="base">SHA1 (160 $Lang::tr{'bit'})</span></td>
+    </tr>
+</table>
 
+<table width='100%'>
+    <tr>
+       <td width='20%'></td> <td width='15%'> </td><td width='15%'> </td><td width='15%'></td><td width='35%'></td>
+    </tr>
+
+    <tr>
+       <td class='base'>HMAC tls-auth</td>
+       <td><input type='checkbox' name='TLSAUTH' $checked{'TLSAUTH'}{'on'} /></td>
+    </tr>
+    </table><hr>
 END
 
 if ( -e "/var/run/openvpn.pid"){
 print" <br><b><font color='#990000'>$Lang::tr{'attention'}:</b></font><br>
                $Lang::tr{'server restart'}<br><br>
                <hr>";
-               print<<END
+       print<<END;
 <table width='100%'>
 <tr>
     <td>&nbsp;</td>
@@ -2632,7 +2628,7 @@ END
                
 }else{
 
-print<<END
+       print<<END;
 <table width='100%'>
 <tr>
     <td>&nbsp;</td>
@@ -2687,7 +2683,7 @@ if ($cgiparams{'ACTION'} eq "edit"){
        
        &Header::openbox('100%', 'LEFT', $Lang::tr{'ccd modify'});
 
-    print <<END;
+       print <<END;
     <table width='100%' border='0'>
     <tr><form method='post'>
        <td width='10%' nowrap='nowrap'>$Lang::tr{'ccd name'}:</td><td><input type='TEXT' name='ccdname' value='$cgiparams{'ccdname'}' /></td>
@@ -2701,7 +2697,7 @@ END
        &Header::closebox();
 
        &Header::openbox('100%', 'LEFT',$Lang::tr{'ccd net'} );
-    print <<END;
+       print <<END;
     <table width='100%' border='0'  cellpadding='0' cellspacing='1'>
     <tr>
        <td class='boldbase' align='center'><b>$Lang::tr{'ccd name'}</td><td class='boldbase' align='center'><b>$Lang::tr{'network'}</td><td class='boldbase' width='15%' align='center'><b>$Lang::tr{'ccd used'}</td><td width='3%'></td><td width='3%'></td></tr>
@@ -2711,7 +2707,7 @@ END
 else{
        if (! -e "/var/run/openvpn.pid"){
        &Header::openbox('100%', 'LEFT', $Lang::tr{'ccd add'});
-               print <<END;
+       print <<END;
            <table width='100%' border='0'>
            <tr><form method='post'>
                <td colspan='4'>$Lang::tr{'ccd hint'}<br><br></td></tr>
@@ -2864,7 +2860,7 @@ END
        }
        
        print "</table>";
-    print <<END;
+       print <<END;
        <table width='100%' border='0' cellpadding='2' cellspacing='0'>
        <tr><td></td></tr>
        <tr><td></td></tr>
@@ -2979,7 +2975,7 @@ END
 
 if ( -s "${General::swroot}/ovpn/settings") {
 
-    print <<END;
+       print <<END;
            <b>$Lang::tr{'connection type'}:</b><br />
            <table border='0' width='100%'><form method='post' ENCTYPE="multipart/form-data">
            <tr><td><input type='radio' name='TYPE' value='host' checked /></td>
@@ -3000,7 +2996,7 @@ END
        
 
 } else {
-    print <<END;
+       print <<END;
                    <b>$Lang::tr{'connection type'}:</b><br />
            <table border='0' width='100%'><form method='post' ENCTYPE="multipart/form-data">
            <tr><td><input type='radio' name='TYPE' value='host' checked /></td> <td class='base'>$Lang::tr{'host to net vpn'}</td></tr>
@@ -3149,6 +3145,7 @@ my $complzoactive;
 my $mssfixactive;
 my $authactive;
 my $n2nfragment;
+my $authactive;
 my @n2nmtudisc = split(/ /, (grep { /^mtu-disc/ } @firen2nconf)[0]);
 my @n2nproto2 = split(/ /, (grep { /^proto/ } @firen2nconf)[0]);
 my @n2nproto = split(/-/, $n2nproto2[1]);
@@ -3167,8 +3164,7 @@ my @n2nremsub = split(/ /, (grep { /^route/ } @firen2nconf)[0]);
 my @n2nmgmt =  split(/ /, (grep { /^management/ } @firen2nconf)[0]);
 my @n2nlocalsub  = split(/ /, (grep { /^# remsub/ } @firen2nconf)[0]);
 my @n2ncipher = split(/ /, (grep { /^cipher/ } @firen2nconf)[0]);
-my @n2nauth = split(/ /, (grep { /^auth/ } @firen2nconf)[0]);
-
+my @n2nauth = split(/ /, (grep { /^auth/ } @firen2nconf)[0]);;
 
 ###
 # m.a.d delete CR and LF from arrays for this chomp doesnt work
@@ -3242,7 +3238,7 @@ foreach my $dkey (keys %confighash) {
        
   $key = &General::findhasharraykey (\%confighash);
 
-       foreach my $i (0 .. 41) { $confighash{$key}[$i] = "";}
+       foreach my $i (0 .. 42) { $confighash{$key}[$i] = "";}
 
        $confighash{$key}[0] = 'off';
        $confighash{$key}[1] = $n2nname[0];
@@ -3263,9 +3259,10 @@ foreach my $dkey (keys %confighash) {
        $confighash{$key}[29] = $n2nport[1];
        $confighash{$key}[30] = $complzoactive;
        $confighash{$key}[31] = $n2ntunmtu[1];
-       $confighash{$key}[38] = $n2nmtudisc[1]; 
+       $confighash{$key}[38] = $n2nmtudisc[1];
        $confighash{$key}[39] = $n2nauth[1];
        $confighash{$key}[40] = $n2ncipher[1];
+       $confighash{$key}[41] = 'disabled';
 
   &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash);
  
@@ -3285,7 +3282,7 @@ foreach my $dkey (keys %confighash) {
                &Header::openbox('100%', 'LEFT', 'import ipfire net2net config');
        }
        if ($errormessage eq ''){
-        print <<END;
+       print <<END;
                <!-- ipfire net2net config gui -->
                <table width='100%'>
                <tr><td width='25%'>&nbsp;</td><td width='25%'>&nbsp;</td></tr>
@@ -3302,8 +3299,8 @@ foreach my $dkey (keys %confighash) {
                <tr><td class='boldbase' nowrap='nowrap'>MSSFIX:</td><td><b>$confighash{$key}[23]</b></td></tr>
                <tr><td class='boldbase' nowrap='nowrap'>Fragment:</td><td><b>$confighash{$key}[24]</b></td></tr>
                <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'MTU'}</td><td><b>$confighash{$key}[31]</b></td></tr>
-               <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'ovpn mtu-disc'}:</td><td><b>$confighash{$key}[38]</b></td></tr>
-               <tr><td class='boldbase' nowrap='nowrap'>Management Port:</td><td><b>$confighash{$key}[22]</b></td></tr>
+               <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'ovpn mtu-disc'}</td><td><b>$confighash{$key}[38]</b></td></tr>
+               <tr><td class='boldbase' nowrap='nowrap'>Management Port </td><td><b>$confighash{$key}[22]</b></td></tr>
                <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'ovpn hmac'}:</td><td><b>$confighash{$key}[39]</b></td></tr>
                <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'cipher'}</td><td><b>$confighash{$key}[40]</b></td></tr>
                <tr><td>&nbsp;</td><td>&nbsp;</td></tr> 
@@ -3405,6 +3402,7 @@ if ($confighash{$cgiparams{'KEY'}}) {
                $cgiparams{'PMTU_DISCOVERY'}    = $confighash{$cgiparams{'KEY'}}[38];
                $cgiparams{'DAUTH'}             = $confighash{$cgiparams{'KEY'}}[39];
                $cgiparams{'DCIPHER'}           = $confighash{$cgiparams{'KEY'}}[40];
+               $cgiparams{'TLSAUTH'}           = $confighash{$cgiparams{'KEY'}}[41];
        } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) {
        $cgiparams{'REMARK'} = &Header::cleanhtml($cgiparams{'REMARK'});
        
@@ -3723,14 +3721,13 @@ if ($cgiparams{'TYPE'} eq 'net') {
                  unlink ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}/$cgiparams{'NAME'}.conf") or die "Removing Configfile fail: $!";
            rmdir ("${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}") || die "Removing Directory fail: $!";
                  goto VPNCONF_ERROR;
-       }
-       #Check if remote subnet is used elsewhere
-       my ($n2nip,$n2nsub)=split("/",$cgiparams{'REMOTE_SUBNET'});
-       $warnmessage=&General::checksubnets('',$n2nip,'ovpn');
-       if ($warnmessage){
-               $warnmessage=$Lang::tr{'remote subnet'}." ($cgiparams{'REMOTE_SUBNET'}) <br>".$warnmessage;
-       }
+       }
+       #Check if remote subnet is used elsewhere
+       my ($n2nip,$n2nsub)=split("/",$cgiparams{'REMOTE_SUBNET'});
+       $warnmessage=&General::checksubnets('',$n2nip,'ovpn');
+       if ($warnmessage){
+               $warnmessage=$Lang::tr{'remote subnet'}." ($cgiparams{'REMOTE_SUBNET'}) <br>".$warnmessage;
+       }
 }
 
 #      if (($cgiparams{'TYPE'} eq 'net') && ($cgiparams{'SIDE'} !~ /^(left|right)$/)) {
@@ -4085,7 +4082,7 @@ if ($cgiparams{'TYPE'} eq 'net') {
        
        if (! $key) {
            $key = &General::findhasharraykey (\%confighash);
-           foreach my $i (0 .. 41) { $confighash{$key}[$i] = "";}
+           foreach my $i (0 .. 43) { $confighash{$key}[$i] = "";}
        }
        $confighash{$key}[0]            = $cgiparams{'ENABLED'};
        $confighash{$key}[1]            = $cgiparams{'NAME'};
@@ -4240,8 +4237,8 @@ if ($cgiparams{'TYPE'} eq 'net') {
 ###    
         $cgiparams{'MSSFIX'} = 'on';
         $cgiparams{'FRAGMENT'} = '1300';
-        $cgiparams{'PMTU_DISCOVERY'} = 'off';
-        $cgiparams{'DAUTH'} = 'SHA1';
+       $cgiparams{'PMTU_DISCOVERY'} = 'off';
+       $cgiparams{'DAUTH'} = 'SHA1';
 ###
 # m.a.d n2n end
 ###    
@@ -4306,14 +4303,6 @@ if ($cgiparams{'TYPE'} eq 'net') {
     }
     $checked{'PMTU_DISCOVERY'}{$cgiparams{'PMTU_DISCOVERY'}} = 'checked=\'checked\'';
 
-    $selected{'DAUTH'}{'whirlpool'} = '';
-    $selected{'DAUTH'}{'SHA512'} = '';
-    $selected{'DAUTH'}{'SHA384'} = '';
-    $selected{'DAUTH'}{'SHA256'} = '';
-    $selected{'DAUTH'}{'ecdsa-with-SHA1'} = '';
-    $selected{'DAUTH'}{'SHA1'} = '';
-    $selected{'DAUTH'}{$cgiparams{'DAUTH'}} = 'SELECTED';
-
     $selected{'DCIPHER'}{'CAMELLIA-256-CBC'} = '';
     $selected{'DCIPHER'}{'CAMELLIA-192-CBC'} = '';
     $selected{'DCIPHER'}{'CAMELLIA-128-CBC'} = '';
@@ -4326,11 +4315,24 @@ if ($cgiparams{'TYPE'} eq 'net') {
     $selected{'DCIPHER'}{'DES-EDE-CBC'} = '';
     $selected{'DCIPHER'}{'CAST5-CBC'} = '';
     $selected{'DCIPHER'}{'BF-CBC'} = '';
-    $selected{'DCIPHER'}{'RC2-CBC'} = '';
     $selected{'DCIPHER'}{'DES-CBC'} = '';
-    $selected{'DCIPHER'}{'RC2-64-CBC'} = '';
-    $selected{'DCIPHER'}{'RC2-40-CBC'} = '';
+    # If no cipher has been chossen yet, select
+    # the old default (AES-256-CBC) for compatiblity reasons.
+    if ($cgiparams{'DCIPHER'} eq '') {
+       $cgiparams{'DCIPHER'} = 'AES-256-CBC';
+    }
     $selected{'DCIPHER'}{$cgiparams{'DCIPHER'}} = 'SELECTED';
+    $selected{'DAUTH'}{'whirlpool'} = '';
+    $selected{'DAUTH'}{'SHA512'} = '';
+    $selected{'DAUTH'}{'SHA384'} = '';
+    $selected{'DAUTH'}{'SHA256'} = '';
+    $selected{'DAUTH'}{'SHA1'} = '';
+    # If no hash algorythm has been choosen yet, select
+    # the old default value (SHA1) for compatiblity reasons.
+    if ($cgiparams{'DAUTH'} eq '') {
+       $cgiparams{'DAUTH'} = 'SHA1';
+    }
+    $selected{'DAUTH'}{$cgiparams{'DAUTH'}} = 'SELECTED';
 
     if (1) {
        &Header::showhttpheaders();
@@ -4386,95 +4388,111 @@ if ($cgiparams{'TYPE'} eq 'net') {
            } else {
                print "<td width='25%'><input type='text' name='NAME' value='$cgiparams{'NAME'}' maxlength='20' /></td>";
            }
-
            print <<END;
                    <td width='25%'>&nbsp;</td>
-                   <td width='25%'>&nbsp;</td></tr>
-
-               <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'Act as'}</td>
-                   <td><select name='SIDE'><option value='server' $selected{'SIDE'}{'server'}>$Lang::tr{'openvpn server'}</option>
-                                           <option value='client' $selected{'SIDE'}{'client'}>$Lang::tr{'openvpn client'}</option></select></td>
-
-                   <td class='boldbase'>$Lang::tr{'remote host/ip'}:</td>
-                   <td><input type='TEXT' name='REMOTE' value='$cgiparams{'REMOTE'}' /></td></tr>
+                   <td width='25%'>&nbsp;</td></tr>    
+       <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'Act as'}</td>
+               <td><select name='SIDE'>
+                               <option value='server' $selected{'SIDE'}{'server'}>$Lang::tr{'openvpn server'}</option>
+                               <option value='client' $selected{'SIDE'}{'client'}>$Lang::tr{'openvpn client'}</option>
+                       </select>
+               </td>
 
-               <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td>
-                   <td><input type='TEXT' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' /></td>
+               <td class='boldbase'>$Lang::tr{'remote host/ip'}:</td>
+               <td><input type='TEXT' name='REMOTE' value='$cgiparams{'REMOTE'}' /></td>
+       </tr>
 
-                   <td class='boldbase' nowrap='nowrap'>$Lang::tr{'remote subnet'}</td>
-                   <td><input type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' /></td></tr>
+       <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td>
+               <td><input type='TEXT' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' /></td>
 
-               <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'ovpn subnet'}</td>
-                   <td><input type='TEXT' name='OVPN_SUBNET' value='$cgiparams{'OVPN_SUBNET'}' /></td>
+               <td class='boldbase' nowrap='nowrap'>$Lang::tr{'remote subnet'}</td>
+               <td><input type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' /></td>
+       </tr>
 
-                       <td class='boldbase'>$Lang::tr{'destination port'}:</td>
-                       <td><input type='TEXT' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='5' /></td>
+       <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'ovpn subnet'}</td>
+               <td><input type='TEXT' name='OVPN_SUBNET' value='$cgiparams{'OVPN_SUBNET'}' /></td>
 
-               <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'protocol'}</td>
-                       <td><select name='PROTOCOL'><option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option>
-                                               <option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option></select></td>
+               <td class='boldbase' nowrap='nowrap'>$Lang::tr{'protocol'}</td>
+               <td><select name='PROTOCOL'>
+                       <option value='udp' $selected{'PROTOCOL'}{'udp'}>UDP</option>
+                       <option value='tcp' $selected{'PROTOCOL'}{'tcp'}>TCP</option></select></td>
+       </tr>
+       
+       <tr>
+               <td class='boldbase'>$Lang::tr{'destination port'}:</td>
+               <td><input type='TEXT' name='DEST_PORT' value='$cgiparams{'DEST_PORT'}' size='5' /></td>
 
                <td class='boldbase' nowrap='nowrap'>Management Port ($Lang::tr{'openvpn default'}: <span class="base">$Lang::tr{'destination port'}): &nbsp;<img src='/blob.gif' /></td>
-                       <td> <input type='TEXT' name='OVPN_MGMT' VALUE='$cgiparams{'OVPN_MGMT'}'size='5' /></td>
-               </tr>
+               <td> <input type='TEXT' name='OVPN_MGMT' VALUE='$cgiparams{'OVPN_MGMT'}'size='5' /></td>
+       </tr>
 
-               <tr><td class='boldbase'>$Lang::tr{'cipher'}</td>
-                       <td><select name='DCIPHER'>
-                                       <option value='CAMELLIA-256-CBC' $selected{'DCIPHER'}{'CAMELLIA-256-CBC'}>CAMELLIA-CBC (256 $Lang::tr{'bit'})</option>
-                                       <option value='CAMELLIA-192-CBC' $selected{'DCIPHER'}{'CAMELLIA-192-CBC'}>CAMELLIA-CBC (196 $Lang::tr{'bit'})</option>
-                                       <option value='CAMELLIA-128-CBC' $selected{'DCIPHER'}{'CAMELLIA-128-CBC'}>CAMELLIA-CBC (128 $Lang::tr{'bit'})</option>
-                                       <option value='AES-256-CBC'     $selected{'DCIPHER'}{'AES-256-CBC'}>AES-CBC (256 $Lang::tr{'bit'})</option>
-                                       <option value='AES-192-CBC'     $selected{'DCIPHER'}{'AES-192-CBC'}>AES-CBC (192 $Lang::tr{'bit'})</option>
-                                       <option value='AES-128-CBC'     $selected{'DCIPHER'}{'AES-128-CBC'}>AES-CBC (128 $Lang::tr{'bit'})</option>
-                                       <option value='DES-EDE3-CBC'    $selected{'DCIPHER'}{'DES-EDE3-CBC'}>DES-EDE3-CBC (192 $Lang::tr{'bit'})</option>
-                                       <option value='DESX-CBC'        $selected{'DCIPHER'}{'DESX-CBC'}>DESX-CBC (192 $Lang::tr{'bit'})</option>
-                                       <option value='SEED-CBC'        $selected{'DCIPHER'}{'SEED-CBC'}>SEED-CBC (128 $Lang::tr{'bit'})</option>
-                                       <option value='DES-EDE-CBC'     $selected{'DCIPHER'}{'DES-EDE-CBC'}>DES-EDE-CBC (128 $Lang::tr{'bit'})</option>
-                                       <option value='BF-CBC'          $selected{'DCIPHER'}{'BF-CBC'}>BF-CBC (128 $Lang::tr{'bit'})</option>
-                                       <option value='CAST5-CBC'       $selected{'DCIPHER'}{'CAST5-CBC'}>CAST5-CBC (128 $Lang::tr{'bit'})</option>
-                                       <option value='RC2-CBC'         $selected{'DCIPHER'}{'RC2-CBC'}>RC2-CBC (128 $Lang::tr{'bit'})</option>
-                                       <option value='DES-CBC'         $selected{'DCIPHER'}{'DES-CBC'}>DES-CBC (64 $Lang::tr{'bit'} not recommended)</option>
-                                       <option value='RC2-64-CBC'      $selected{'DCIPHER'}{'RC2-64-CBC'}>RC2-CBC (64 $Lang::tr{'bit'} not recommended)</option>
-                                       <option value='RC2-40-CBC'      $selected{'DCIPHER'}{'RC2-40-CBC'}>RC2-CBC (40 $Lang::tr{'bit'} not recommended)</option>
-                               </select>
-                       </td>
-
-                       <td class='boldbase'>$Lang::tr{'ovpn ha'}:</td>
-                       <td><select name='DAUTH'>
-                                       <option value='whirlpool'       $selected{'DAUTH'}{'whirlpool'}>Whirlpool (512 $Lang::tr{'bit'})</option>
-                                       <option value='SHA512'          $selected{'DAUTH'}{'SHA512'}>SHA2 (512 $Lang::tr{'bit'})</option>
-                                       <option value='SHA384'          $selected{'DAUTH'}{'SHA384'}>SHA2 (384 $Lang::tr{'bit'})</option>
-                                       <option value='SHA256'          $selected{'DAUTH'}{'SHA256'}>SHA2 (256 $Lang::tr{'bit'})</option>
-                                       <option value='ecdsa-with-SHA1' $selected{'DAUTH'}{'ecdsa-with-SHA1'}>ECDSA-SHA1 (160 $Lang::tr{'bit'})</option>
-                                       <option value='SHA1'            $selected{'DAUTH'}{'SHA1'}>SHA1 (160 $Lang::tr{'bit'} Default)</option>
-                               </select>
-                       </td>
-               </tr>
+       <tr><td colspan=4><hr /></td></tr><tr>
+       
+       <tr>
+               <td class'base'><b>$Lang::tr{'MTU settings'}</b></td>
+       </tr>
 
-               <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'MTU'}&nbsp;<img src='/blob.gif' /></td>
-                       <td> <input type='TEXT' name='MTU' VALUE='$cgiparams{'MTU'}'size='5' /></td>
-                       <td colspan='2'>$Lang::tr{'openvpn default'}: udp/tcp <span class="base">1500/1400</span></td>
+        <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'MTU'}&nbsp;<img src='/blob.gif' /></td>
+               <td><input type='TEXT' name='MTU' VALUE='$cgiparams{'MTU'}'size='5' /></td>
+               <td colspan='2'>$Lang::tr{'openvpn default'}: udp/tcp <span class="base">1500/1400</span></td>
+       </tr>
 
-               <tr><td class='boldbase' nowrap='nowrap'>fragment: &nbsp;<img src='/blob.gif' /></td>
-                       <td><input type='TEXT' name='FRAGMENT' VALUE='$cgiparams{'FRAGMENT'}'size='5' /></td>
-                       <td>$Lang::tr{'openvpn default'}: <span class="base">1300</span></td>
+       <tr><td class='boldbase' nowrap='nowrap'>fragment &nbsp;<img src='/blob.gif' /></td>
+               <td><input type='TEXT' name='FRAGMENT' VALUE='$cgiparams{'FRAGMENT'}'size='5' /></td>
+               <td>$Lang::tr{'openvpn default'}: <span class="base">1300</span></td>
+       </tr>
 
-               <tr><td class='boldbase' nowrap='nowrap'>mssfix: &nbsp;<img src='/blob.gif' /></td>
-                       <td><input type='checkbox' name='MSSFIX' $checked{'MSSFIX'}{'on'} /></td>
-                       <td>$Lang::tr{'openvpn default'}: <span class="base">on</span></td>
+       <tr><td class='boldbase' nowrap='nowrap'>mssfix &nbsp;<img src='/blob.gif' /></td>
+               <td><input type='checkbox' name='MSSFIX' $checked{'MSSFIX'}{'on'} /></td>
+               <td>$Lang::tr{'openvpn default'}: <span class="base">on</span></td>
+       </tr>
 
         <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'comp-lzo'} &nbsp;<img src='/blob.gif'</td>
-                       <td><input type='checkbox' name='COMPLZO' $checked{'COMPLZO'}{'on'} /></td>
-               </tr>
+               <td><input type='checkbox' name='COMPLZO' $checked{'COMPLZO'}{'on'} /></td>
+       </tr>
 
-               <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'ovpn mtu-disc'}:</td>
-                       <td colspan='3'>
-                               <input type='radio' name='PMTU_DISCOVERY' value='yes' $checked{'PMTU_DISCOVERY'}{'yes'} /> $Lang::tr{'ovpn mtu-disc yes'}
-                               <input type='radio' name='PMTU_DISCOVERY' value='maybe' $checked{'PMTU_DISCOVERY'}{'maybe'} /> $Lang::tr{'ovpn mtu-disc maybe'}
-                               <input type='radio' name='PMTU_DISCOVERY' value='no' $checked{'PMTU_DISCOVERY'}{'no'} /> $Lang::tr{'ovpn mtu-disc no'}
-                               <input type='radio' name='PMTU_DISCOVERY' value='off' $checked{'PMTU_DISCOVERY'}{'off'} /> $Lang::tr{'ovpn mtu-disc off'}
-                       </td>
-               </tr>
+       <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'ovpn mtu-disc'}</td>
+               <td colspan='3'>
+                       <input type='radio' name='PMTU_DISCOVERY' value='yes' $checked{'PMTU_DISCOVERY'}{'yes'} /> $Lang::tr{'ovpn mtu-disc yes'}
+                       <input type='radio' name='PMTU_DISCOVERY' value='maybe' $checked{'PMTU_DISCOVERY'}{'maybe'} /> $Lang::tr{'ovpn mtu-disc maybe'}
+                       <input type='radio' name='PMTU_DISCOVERY' value='no' $checked{'PMTU_DISCOVERY'}{'no'} /> $Lang::tr{'ovpn mtu-disc no'}
+                       <input type='radio' name='PMTU_DISCOVERY' value='off' $checked{'PMTU_DISCOVERY'}{'off'} /> $Lang::tr{'ovpn mtu-disc off'}
+               </td>
+       </tr>
+
+<tr><td colspan=4><hr /></td></tr><tr>
+       <tr>
+               <td class'base'><b>$Lang::tr{'ovpn crypt options'}:</b></td>
+       </tr>
+
+       <tr><td class='boldbase'>$Lang::tr{'cipher'}</td>
+               <td><select name='DCIPHER'>
+                               <option value='CAMELLIA-256-CBC'        $selected{'DCIPHER'}{'CAMELLIA-256-CBC'}>CAMELLIA-CBC (256 $Lang::tr{'bit'})</option>
+                               <option value='CAMELLIA-192-CBC'        $selected{'DCIPHER'}{'CAMELLIA-192-CBC'}>CAMELLIA-CBC (192 $Lang::tr{'bit'})</option>
+                               <option value='CAMELLIA-128-CBC'        $selected{'DCIPHER'}{'CAMELLIA-128-CBC'}>CAMELLIA-CBC (128 $Lang::tr{'bit'})</option>
+                               <option value='AES-256-CBC'             $selected{'DCIPHER'}{'AES-256-CBC'}>AES-CBC (256 $Lang::tr{'bit'})</option>
+                               <option value='AES-192-CBC'             $selected{'DCIPHER'}{'AES-192-CBC'}>AES-CBC (192 $Lang::tr{'bit'})</option>
+                               <option value='AES-128-CBC'             $selected{'DCIPHER'}{'AES-128-CBC'}>AES-CBC (128 $Lang::tr{'bit'})</option>
+                               <option value='DES-EDE3-CBC'            $selected{'DCIPHER'}{'DES-EDE3-CBC'}>DES-EDE3-CBC (192 $Lang::tr{'bit'})</option>
+                               <option value='DESX-CBC'                $selected{'DCIPHER'}{'DESX-CBC'}>DESX-CBC (192 $Lang::tr{'bit'})</option>
+                               <option value='SEED-CBC'                $selected{'DCIPHER'}{'SEED-CBC'}>SEED-CBC (128 $Lang::tr{'bit'})</option>
+                               <option value='DES-EDE-CBC'             $selected{'DCIPHER'}{'DES-EDE-CBC'}>DES-EDE-CBC (128 $Lang::tr{'bit'})</option>
+                               <option value='BF-CBC'                  $selected{'DCIPHER'}{'BF-CBC'}>BF-CBC (128 $Lang::tr{'bit'})</option>
+                               <option value='CAST5-CBC'               $selected{'DCIPHER'}{'CAST5-CBC'}>CAST5-CBC (128 $Lang::tr{'bit'})</option>
+                       </select>
+               </td>
+
+               <td class='boldbase'>$Lang::tr{'ovpn ha'}:</td>
+               <td><select name='DAUTH'>
+                               <option value='whirlpool'               $selected{'DAUTH'}{'whirlpool'}>Whirlpool (512 $Lang::tr{'bit'})</option>
+                               <option value='SHA512'                  $selected{'DAUTH'}{'SHA512'}>SHA2 (512 $Lang::tr{'bit'})</option>
+                               <option value='SHA384'                  $selected{'DAUTH'}{'SHA384'}>SHA2 (384 $Lang::tr{'bit'})</option>
+                               <option value='SHA256'                  $selected{'DAUTH'}{'SHA256'}>SHA2 (256 $Lang::tr{'bit'})</option>
+                               <option value='SHA1'                    $selected{'DAUTH'}{'SHA1'}>SHA1 (160 $Lang::tr{'bit'} Default)</option>
+                       </select>
+               </td>
+       </tr>
+       <tr><td colspan=4><hr /></td></tr><tr>
 
 END
 ;
@@ -4538,7 +4556,7 @@ if ($cgiparams{'TYPE'} eq 'host') {
  
  if ($cgiparams{'TYPE'} eq 'host') {
 
-    print <<END;
+       print <<END;
            <table width='100%' cellpadding='0' cellspacing='5' border='0'>
            
            <tr><td><input type='radio' name='AUTH' value='certreq' $checked{'AUTH'}{'certreq'} $cakeydisabled /></td><td class='base'>$Lang::tr{'upload a certificate request'}</td><td class='base' rowspan='2'><input type='file' name='FH' size='30' $cacrtdisabled></td></tr>
@@ -4563,7 +4581,7 @@ END
 
 } else {
 
-    print <<END;
+       print <<END;
            <table width='100%' cellpadding='0' cellspacing='5' border='0'>
       
            <tr><td><input type='radio' name='AUTH' value='certgen' $checked{'AUTH'}{'certgen'} $cakeydisabled /></td><td class='base'>$Lang::tr{'generate a certificate'}</td><td>&nbsp;</td></tr>
@@ -4597,7 +4615,7 @@ END
 ###
 
 if ($cgiparams{'TYPE'} eq 'host') {
-    print <<END;
+       print <<END;
            </select></td></tr>
 
        <td>&nbsp;</td><td class='base'>$Lang::tr{'valid till'} (days):</td>
@@ -4613,7 +4631,7 @@ if ($cgiparams{'TYPE'} eq 'host') {
      </table>
 END
 }else{
-    print <<END;
+       print <<END;
            </select></td></tr>
    <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
         <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
@@ -4741,7 +4759,7 @@ END
        if (&haveOrangeNet() && $selorange == '1'){ print"<option selected>$Lang::tr{'orange'}</option>";$selorange=0;}elsif(&haveOrangeNet() && $selorange == '0'){print"<option>$Lang::tr{'orange'}</option>";}                       
        if ($selgreen == '1' || $other == '0'){ print"<option selected>$Lang::tr{'green'}</option>";$set=0;}else{print"<option>$Lang::tr{'green'}</option>";};
        
-       print<<END
+       print<<END;
        </select></td><td valign='top'>DNS1:</td><td valign='top'><input type='TEXT' name='CCD_DNS1' value='$cgiparams{'CCD_DNS1'}' size='30' /></td></tr>
        <tr valign='top'><td>DNS2:</td><td><input type='TEXT' name='CCD_DNS2' value='$cgiparams{'CCD_DNS2'}' size='30' /></td></tr>
        <tr valign='top'><td valign='top'>WINS:</td><td><input type='TEXT' name='CCD_WINS' value='$cgiparams{'CCD_WINS'}' size='30' /></td></tr></table><br><hr>
@@ -4835,17 +4853,13 @@ END
     $selected{'DCIPHER'}{'DES-EDE-CBC'} = '';
     $selected{'DCIPHER'}{'CAST5-CBC'} = '';
     $selected{'DCIPHER'}{'BF-CBC'} = '';
-    $selected{'DCIPHER'}{'RC2-CBC'} = '';
     $selected{'DCIPHER'}{'DES-CBC'} = '';
-    $selected{'DCIPHER'}{'RC2-64-CBC'} = '';
-    $selected{'DCIPHER'}{'RC2-40-CBC'} = '';
     $selected{'DCIPHER'}{$cgiparams{'DCIPHER'}} = 'SELECTED';
 
     $selected{'DAUTH'}{'whirlpool'} = '';
     $selected{'DAUTH'}{'SHA512'} = '';
     $selected{'DAUTH'}{'SHA384'} = '';
     $selected{'DAUTH'}{'SHA256'} = '';
-    $selected{'DAUTH'}{'ecdsa-with-SHA1'} = '';
     $selected{'DAUTH'}{'SHA1'} = '';
     $selected{'DAUTH'}{$cgiparams{'DAUTH'}} = 'SELECTED';
 
@@ -4869,15 +4883,15 @@ END
        &Header::closebox();
     }
 
-    if ($warnmessage) {
-        &Header::openbox('100%', 'LEFT', $Lang::tr{'warning messages'});
-        print "$warnmessage<br>";
-        print "$Lang::tr{'fwdfw warn1'}<br>";
-        &Header::closebox();
-        print"<center><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'ok'}' style='width: 5em;'></form>";
-        &Header::closepage();
-        exit 0;
-    }
+       if ($warnmessage) {
+               &Header::openbox('100%', 'LEFT', $Lang::tr{'warning messages'});
+               print "$warnmessage<br>";
+               print "$Lang::tr{'fwdfw warn1'}<br>";
+               &Header::closebox();
+               print"<center><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'ok'}' style='width: 5em;'></form>";
+               &Header::closepage();
+               exit 0;
+       }
 
     my $sactive = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='50%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'stopped'}</font></b></td></tr></table>";
     my $srunning = "no";
@@ -4923,11 +4937,12 @@ END
         <td class='boldbase'>$Lang::tr{'destination port'}:</td>
         <td><input type='TEXT' name='DDEST_PORT' value='$cgiparams{'DDEST_PORT'}' size='5' /></td></tr>
     <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'MTU'}&nbsp;</td>
-        <td> <input type='TEXT' name='DMTU' VALUE='$cgiparams{'DMTU'}'size='5' /></td>
+        <td> <input type='TEXT' name='DMTU' VALUE='$cgiparams{'DMTU'}' size='5' /></td>
+
                <td class='boldbase' nowrap='nowrap'>$Lang::tr{'cipher'}</td>
                <td><select name='DCIPHER'>
                                <option value='CAMELLIA-256-CBC' $selected{'DCIPHER'}{'CAMELLIA-256-CBC'}>CAMELLIA-CBC (256 $Lang::tr{'bit'})</option>
-                               <option value='CAMELLIA-192-CBC' $selected{'DCIPHER'}{'CAMELLIA-192-CBC'}>CAMELLIA-CBC (196 $Lang::tr{'bit'})</option>
+                               <option value='CAMELLIA-192-CBC' $selected{'DCIPHER'}{'CAMELLIA-192-CBC'}>CAMELLIA-CBC (192 $Lang::tr{'bit'})</option>
                                <option value='CAMELLIA-128-CBC' $selected{'DCIPHER'}{'CAMELLIA-128-CBC'}>CAMELLIA-CBC (128 $Lang::tr{'bit'})</option>
                                <option value='AES-256-CBC' $selected{'DCIPHER'}{'AES-256-CBC'}>AES-CBC (256 $Lang::tr{'bit'})</option>
                                <option value='AES-192-CBC' $selected{'DCIPHER'}{'AES-192-CBC'}>AES-CBC (192 $Lang::tr{'bit'})</option>
@@ -4938,10 +4953,6 @@ END
                                <option value='DES-EDE-CBC' $selected{'DCIPHER'}{'DES-EDE-CBC'}>DES-EDE-CBC (128 $Lang::tr{'bit'})</option>
                                <option value='BF-CBC' $selected{'DCIPHER'}{'BF-CBC'}>BF-CBC (128 $Lang::tr{'bit'})</option>
                                <option value='CAST5-CBC' $selected{'DCIPHER'}{'CAST5-CBC'}>CAST5-CBC (128 $Lang::tr{'bit'})</option>
-                               <option value='RC2-CBC' $selected{'DCIPHER'}{'RC2-CBC'}>RC2-CBC (128 $Lang::tr{'bit'})</option>
-                               <option value='DES-CBC' $selected{'DCIPHER'}{'DES-CBC'}>DES-CBC (64 $Lang::tr{'bit'} not recommended)</option>
-                               <option value='RC2-64-CBC' $selected{'DCIPHER'}{'RC2-64-CBC'}>RC2-CBC (64 $Lang::tr{'bit'} not recommended)</option>
-                               <option value='RC2-40-CBC' $selected{'DCIPHER'}{'RC2-40-CBC'}>RC2-CBC (40 $Lang::tr{'bit'} not recommended)</option>
                        </select>
                </td>
     <tr><td class='boldbase' nowrap='nowrap'>$Lang::tr{'comp-lzo'}</td>
@@ -5057,7 +5068,7 @@ END
 #EXITING       -- A graceful exit is in progress.
 ####
 
-               if ($tustate[1] eq 'CONNECTED') {
+               if (($tustate[1] eq 'CONNECTED') || ($tustate[1] eq 'WAIT')) {
                        $col1="bgcolor='${Header::colourgreen}'";
                        $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b>";
                }else {
@@ -5336,22 +5347,32 @@ END
                <td nowrap='nowrap' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'upload ca certificate'}' /></td>
        </tr>
 
+       <tr align='right'>
+               <td colspan='4' align='right' width='80%'><input type='submit' name='ACTION' value='$Lang::tr{'show crl'}' /></td>
+       </tr>
+
+       <tr><td colspan=4><hr /></td></tr><tr>
        <tr>
-               <td class='base' nowrap='nowrap'>$Lang::tr{'ovpn dh name'}:</td>
-               <td nowrap='nowrap'><input type='text' name='DH_NAME' value='$cgiparams{'DH_NAME'}' size='15' align='left'/></td>
+               <td class'base'><b>$Lang::tr{'ovpn dh parameters'}:</b></td>
+       </tr>
+
+       <tr>
+               <td class='base' nowrap='nowrap'>$Lang::tr{'ovpn dh upload'}:</td>
+               <td nowrap='nowrap'><size='15' align='left'/></td>
                <td nowrap='nowrap'><input type='file' name='FH' size='25' />
-               <td nowrap='nowrap' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'upload dh key'}' /></td>
+               <td colspan='4' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'upload dh key'}' /></td>
        </tr>
-       <tr><td colspan='4'><br></td></tr>
        <tr>
+               <td class='base' nowrap='nowrap'>$Lang::tr{'ovpn dh new key'}:</td>
+               <td nowrap='nowrap'><size='15' align='left'/></td>
                <td nowrap='nowrap'><input type='submit' name='ACTION' value='$Lang::tr{'generate dh key'}' /></td>
-               <td colspan='4' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'show dh'}' /></td>
        </tr>
-
-       <tr align='right'>
-               <td colspan='4' align='right' width='80%'><input type='submit' name='ACTION' value='$Lang::tr{'show crl'}' /></td>
+       <tr>
+               <td colspan='4' align='right'><input type='submit' name='ACTION' value='$Lang::tr{'show dh'}' /></td>
        </tr>
        </table>
+       
+       <tr><td colspan=4><hr /></td></tr><tr>
 END
        ;
 
index 563d0eb58c8b0b7d1949d850b75d27de34887e6e..7bceb80ee74230fbbbea1cb9440147cf7e6e5b4d 100644 (file)
@@ -153,6 +153,9 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'})
                 if (($pppsettings{'VPI'} eq '0') && ($pppsettings{'VCI'} eq '0')) {
                         $errormessage = $Lang::tr{'invalid vpi vpci'};
                         goto ERROR; }
+                if ($pppsettings{'ATM_DEV'} eq '') {
+                        $errormessage = $Lang::tr{'invalid input'};
+                        goto ERROR; }
                 if ( $pppsettings{'PROTOCOL'} eq '' ) {
                         $errormessage = $Lang::tr{'invalid input'};
                         goto ERROR; }
@@ -751,11 +754,12 @@ if ($pppsettings{'TYPE'} =~ /^(pppoeatm|pptpatm)$/)
 
 print <<END
 <tr>
-        <td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'adsl settings'}:</b></td>
+        <td colspan='4' width='100%' bgcolor='$color{'color20'}'><b>$Lang::tr{'atm settings'}:</b></td>
 <tr>
-
+        <td nowrap='nowrap'>$Lang::tr{'atm device'}</td>
+        <td><input type='text' size='5' name='ATM_DEV' value='$pppsettings{'ATM_DEV'}' /></td>
         <td> $Lang::tr{'encapsulation'}:</td>
-        <td colspan='2' width='30%'>
+        <td>
                 <select name='ENCAP'>
                    <option value='0' $selected{'ENCAP'}{'0'}>LLC</option>
                    <option value='1' $selected{'ENCAP'}{'1'}>VCmux</option>
@@ -763,11 +767,10 @@ print <<END
         </td>
 </tr>
 <tr>
-
         <td nowrap='nowrap'>$Lang::tr{'vpi number'}</td>
         <td><input type='text' size='5' name='VPI' value='$pppsettings{'VPI'}' /></td>
-        <td align='right'>$Lang::tr{'vci number'}</td>
-        <td colspan='2'><input type='text' size='5' name='VCI' value='$pppsettings{'VCI'}' /></td>
+        <td$Lang::tr{'vci number'}</td>
+        <td><input type='text' size='5' name='VCI' value='$pppsettings{'VCI'}' /></td>
 </tr>
 END
 ;
@@ -968,6 +971,7 @@ sub initprofile
         $pppsettings{'ENCAP'} = '0';
         $pppsettings{'VPI'} = '1';
         $pppsettings{'VCI'} = '32';
+        $pppsettings{'ATM_DEV'} = '0';
         $pppsettings{'PPTP_PEER'} = '10.0.0.138';
        $pppsettings{'PPTP_NICCFG'} = '10.0.0.140/24 broadcast 10.0.0.255';
        $pppsettings{'PPTP_ROUTE'} = '';
index c4cff478928133814504953c403274c7801f46ec..2a9d49394276a83233b4928b5737b1facb5141e9 100644 (file)
@@ -2972,11 +2972,23 @@ sub writepacfile
                print FILE <<END
 if (
      (isPlainHostName(host)) ||
-     (dnsDomainIs(host, ".$mainsettings{'DOMAINNAME'}")) ||
      (isInNet(host, "127.0.0.1", "255.0.0.0")) ||
-     (isInNet(host, "10.0.0.0", "255.0.0.0")) ||
-     (isInNet(host, "172.16.0.0", "255.240.0.0")) ||
-     (isInNet(host, "192.168.0.0", "255.255.0.0")) ||
+END
+;
+
+       if ($netsettings{'GREEN_DEV'}) {
+               print FILE "     (isInNet(host, \"$netsettings{'GREEN_NETADDRESS'}\", \"$netsettings{'GREEN_NETMASK'}\")) ||\n";
+       }
+
+       if (&Header::blue_used() && $netsettings{'BLUE_DEV'}) {
+               print FILE "     (isInNet(host, \"$netsettings{'BLUE_NETADDRESS'}\", \"$netsettings{'BLUE_NETMASK'}\")) ||\n";
+       }
+
+       if (&Header::orange_used() && $netsettings{'ORANGE_DEV'}) {
+               print FILE "     (isInNet(host, \"$netsettings{'ORANGE_NETADDRESS'}\", \"$netsettings{'ORANGE_NETMASK'}\")) ||\n";
+       }
+
+       print FILE <<END
      (isInNet(host, "169.254.0.0", "255.255.0.0"))
    )
      return "DIRECT";
index 0c47cd456bbee33e732d848e2601304e22f133a8..63740d42d8385cf008b86d30d6fd2d376bca5329 100644 (file)
@@ -194,7 +194,7 @@ sub openpagewithoutmenu {
 sub closepage () {
        open(FILE, "</etc/system-release");
        my $system_release = <FILE>;
-       $system_release =~ s/core/Core Update/;
+       $system_release =~ s/core/Core Update /;
        close(FILE);
 
 print <<END;
index 720cce14f40d6f471ef7297a0f1e5353a8c1acb9..6d270129ace516b2f162ba483959dcf6d336837d 100644 (file)
@@ -1,7 +1,7 @@
 %tr = ( 
 %tr,
 
-'Act as' => 'Konfiguriert als',
+'Act as' => 'Konfiguriert als:',
 'Add Level7 rule' => 'Level7-Regel hinzufügen',
 'Add Port Rule' => 'Port-Regel hinzufügen',
 'Add Rule' => 'Regel hinzufügen',
@@ -10,7 +10,6 @@
 'Choose Rule' => 'Wählen Sie <u>eine</u> der untenstehenden Regeln aus.',
 'Class' => 'Klasse',
 'Class was deleted' => 'wurde mit eventuell vorhandenen Unterklassen gelöscht',
-'Client status and controlc' => 'Client-Status und -Kontrolle',
 'ConnSched action' => 'Aktion:',
 'ConnSched add action' => 'Aktion hinzufügen',
 'ConnSched change profile title' => 'Wechsle zu Profil:',
@@ -18,8 +17,8 @@
 'ConnSched dial' => 'Verbinden',
 'ConnSched down' => 'Runter',
 'ConnSched hangup' => 'Trennen',
-'ConnSched ipsecstart' => 'IPSec (neu)starten',
-'ConnSched ipsecstop' => 'IPSec stop',
+'ConnSched ipsecstart' => 'IPsec (neu)starten',
+'ConnSched ipsecstop' => 'IPsec stop',
 'ConnSched reboot' => 'Neustarten',
 'ConnSched reconnect' => 'Neu verbinden',
 'ConnSched scheduled actions' => 'Geplante Aktionen',
@@ -39,7 +38,9 @@
 'Local VPN IP' => 'Internes Netzwerk (GREEN)',
 'MB read' => 'MB gelesen',
 'MB written' => 'MB geschrieben',
-'MTU' => 'MTU Size:',
+'MTU' => 'MTU-Größe:',
+'MTU settings' => 'MTU-Einstellungen:',
+'Number of Countries for the pie chart' => 'Anzahl der angezeigten Länder im Diagramm',
 'Number of IPs for the pie chart' => 'Anzahl der angezeigten IPs im Diagramm',
 'Number of Ports for the pie chart' => 'Anzahl der angezeigten Ports im Diagramm',
 'OVPN' => 'OpenVPN',
 'admin user password has been changed' => 'Passwort für Benutzer admin wurde geändert.',
 'admin users' => 'Liste der Benutzer mit Super User Rechten',
 'administrator user password' => 'Passwort für Benutzer &quot;admin&quot;:',
-'adsl settings' => 'ADSL-Einstellungen',
 'advanced' => 'Erweitert',
 'advanced server' => 'Erweiterte Server-Optionen',
 'advproxy AUTH always required' => 'Authentifizierung für uneingeschränkte Quelladressen erforderlich',
 'are you sure' => 'Sind Sie sicher?',
 'arp table entries' => 'Einträge der ARP-Tabelle',
 'artist' => 'Künstler',
+'atm device' => 'Device:',
+'atm settings' => 'ATM-Einstellungen',
 'attemps' => 'Versuche',
 'attention' => 'ACHTUNG',
 'august' => 'August',
 'details' => 'Mehr',
 'device' => 'Gerät',
 'devices on blue' => 'Geräte auf Blau',
-'dh' => 'Diffie-Hellman Key',
-'dh key warn' => 'Keys mit 1024 und 2048 Bit können mehrere Minuten, 3072 und 4096 Bit bis zu mehreren Stunden dauern. Bitte haben sie Geduld.',
-'dh name is invalid' => 'Name ist ungültig, bitte "dh1024.pem" verwenden.',
+'dh' => 'Diffie-Hellman-Parameter',
+'dh key move failed' => 'Verschieben der Diffie-Hellman-Parameter fehlgeschlagen.',
+'dh key warn' => 'Das Generieren der Diffie-Hellman-Parameter mit 1024 oder 2048 Bit dauert üblicherweise mehrere Minuten. Schlüssellängen von 3072 oder 4096 Bit beanspruchen mehrere Stunden. Bitte haben Sie etwas Geduld.',
+'dh key warn1' => 'Bei schwachen Systemen oder Systeme mit wenig Entropie wird empfohlen lange Diffie-Hellman-Parameter über die Upload-Funktion hochzuladen.',
 'dhcp advopt add' => 'DHCP Option hinzufügen',
 'dhcp advopt added' => 'DHCP Option hinzugefügt',
 'dhcp advopt blank value' => 'Wert für DHCP Option darf nicht leer sein',
 'dns proxy server' => 'DNS-Proxyserver',
 'dns saved' => 'Erfolgreich gespeichert!',
 'dns saved txt' => 'Die beiden eingegebenen DNS-Server-Adressen wurde erfolgreich gespeichert.<br/>Um die Änderung wirksam zu machen, müssen Sie neustarten oder wiederverbinden!',
-'dns server' => 'DNS-Server',
+'dns server' => 'DNS Server',
 'dns servers' => 'DNS-Server',
 'dns title' => 'Domain Name System',
 'dnsforward' => 'DNS-Weiterleitung',
 'donation-text' => '<strong>IPFire</strong> wird von Freiwilligen in ihrer Freizeit betrieben und auch betreut. Um dieses Projekt am Laufen zu halten, entstehen uns natürlich auch Kosten. Wenn Sie uns unterstützen wollen, würden wir uns über eine kleine Spende sehr freuen.',
 'dos charset' => 'DOS Charset',
 'down and up speed' => 'Geben Sie bitte hier ihre Download- bzw. Upload-Geschwindigkeit ein <br /> und klicken Sie danach auf <i>Speichern</i>.',
-'downlink' => 'Downlink',
 'downlink speed' => 'Downlink-Geschwindigkeit (kBit/sek)',
 'downlink std class' => 'Downloadstandardklasse',
 'download' => 'herunterladen',
 'firewall log' => 'Firewall-Protokoll',
 'firewall log viewer' => 'Betrachter der Firewall-Logdateien',
 'firewall logs' => 'Firewall-Logdateien',
+'firewall logs country' => 'Fw-Logdiagramme (Land)',
 'firewall logs ip' => 'Fw-Logdiagramme (IP)',
 'firewall logs port' => 'Fw-Logdiagramme (Port)',
 'firewall rules' => 'Firewallregeln',
 'firewallhits' => 'Firewalltreffer',
 'firmware' => 'Firmware',
 'firmware upload' => 'Hochladen der Firmware/Treiber',
-'first' => 'Erste',
 'fixed ip lease added' => 'Feste IP-Zuordnung hinzugefügt',
 'fixed ip lease modified' => 'Feste IP-Zuordnung geändert',
 'fixed ip lease removed' => 'Feste IP-Zuordnung gelöscht',
 'fwdfw wd_tue' => 'Di',
 'fwdfw wd_wed' => 'Mi',
 'fwdfw xt access' => 'Input',
+'fwhost Custom Host' => 'Host',
+'fwhost Custom Network' => 'Netzwerk',
+'fwhost IpSec Host' => 'IPsec-Host',
+'fwhost IpSec Network' => 'IPsec-Netzwerk',
+'fwhost OpenVPN N-2-N' => 'OpenVPN Netz-zu-Netz',
+'fwhost OpenVPN static host' => 'OpenVPN statischer Host',
+'fwhost OpenVPN static network' => 'OpenVPN statisches Netzwerk',
+'fwhost Standard Network' => 'Standard-Netzwerk',
 'fwhost addgrp' => 'Neue Gruppe hinzufügen',
 'fwhost addgrpname' => 'Gruppenname:',
 'fwhost addhost' => 'Neuen Host hinzufügen',
 'fwhost wo subnet' => '(Ohne Subnetz)',
 'gateway' => 'Gateway',
 'gateway ip' => 'Gateway-IP',
-'gen dh' => 'Diffie-Hellman Key erzeugen',
+'gen dh' => 'Neuen Diffie-Hellman-Parameter erzeugen',
 'gen static key' => 'Statischen Schlüssel erzeugen',
 'generate' => 'Root/Host-Zertifikate generieren',
 'generate a certificate' => 'Erzeuge ein Zertifikat:',
 'lan' => 'LAN',
 'lang' => 'de',
 'languagepurpose' => 'Wählen Sie eine Sprache, in der IPFire angezeigt werden soll:',
-'last' => 'Letzte',
 'last activity' => 'Letzte Aktivität',
 'lateprompting' => 'Late prompting',
 'lease expires' => 'Zuordnung verfällt',
 'network traffic graphs others' => 'Netzwerk (sonstige)',
 'network updated' => 'Benutzerdefiniertes Netzwerk aktualisiert',
 'networks settings' => 'Firewall - Netzwerkeinstellungen',
+'never' => 'Nie',
 'new optionsfw later' => 'Einige Einstellungen werden erst nach einem Neustart aktiv',
 'new optionsfw must boot' => 'Sie müssen Ihren IPFire neu starten',
 'newer' => 'Neuer',
 'nonetworkname' => 'Kein Netzwerkname wurde eingegeben',
 'noservicename' => 'Kein Dienstname wurde eingegeben',
 'not a valid ca certificate' => 'Kein gültiges CA Zertifikat.',
-'not a valid dh key' => 'Kein gültiger Diffie-Hellman Schlüssel. Bitte nur 1024, 2048, 3072 oder 4096 Bit im PKCS#3 Format verwenden.',
+'not a valid dh key' => 'Kein gültiger Diffie-Hellman-Parameter. Es sind nur Parameter mit einer Länge von 1024, 2048, 3072 oder 4096 Bit im PKCS#3-Format erlaubt.',
 'not enough disk space' => 'Nicht genügend Plattenplatz vorhanden',
 'not present' => '<B>Nicht</B> vorhanden',
 'not running' => 'nicht gestartet',
 'ovpn con stat' => 'OpenVPN Verbindungs-Statistik',
 'ovpn config' => 'OVPN-Konfiguration',
 'ovpn crypt options' => 'Kryptografieoptionen',
-'ovpn device' => 'OpenVPN-Gerät:',
-'ovpn dh' => 'Diffie-Hellman Key Länge',
-'ovpn dh name' => 'Diffie-Hellman Key Name',
+'ovpn device' => 'OpenVPN-Gerät',
+'ovpn dh' => 'Diffie-Hellman-Parameter-Länge',
+'ovpn dh new key' => 'Neuen Diffie-Hellman Parameter erstellen',
+'ovpn dh parameters' => 'Diffie-Hellman-Parameter-Optionen',
+'ovpn dh upload' => 'Neuen Diffie-Hellman-Parameter hochladen',
 'ovpn dl' => 'OVPN-Konfiguration downloaden',
+'ovpn engines' => 'Krypto Engine',
 'ovpn errmsg green already pushed' => 'Route für grünes Netzwerk wird immer gesetzt',
 'ovpn errmsg invalid ip or mask' => 'Ungültige Netzwerk-Adresse oder Subnetzmaske',
 'ovpn generating the root and host certificates' => 'Die Erzeugung der Root- und Host-Zertifikate kann lange Zeit dauern.',
-'ovpn ha' => 'Hash Algorithmus',
-'ovpn hmac' => 'HMAC Optionen',
+'ovpn ha' => 'Hash-Algorithmus',
+'ovpn hmac' => 'HMAC-Optionen',
 'ovpn log' => 'OVPN-Log',
 'ovpn mgmt in root range' => 'Ein Port von 1024 oder höher ist erforderlich.',
 'ovpn mtu-disc' => 'Path MTU Discovery',
 'ovpn on orange' => 'OpenVPN auf ORANGE:',
 'ovpn on red' => 'OpenVPN auf ROT:',
 'ovpn port in root range' => 'Ein Port von 1024 oder höher ist erforderlich.',
+'ovpn reneg sec' => 'Session Key Lifetime',
 'ovpn routes push' => 'Routen (eine pro Zeile) z.b. 192.168.10.0/255.255.255.0 192.168.20.0/24',
 'ovpn routes push options' => 'Route push Optionen',
 'ovpn server status' => 'OpenVPN-Server-Status',
 'ovpn subnet' => 'OpenVPN-Subnetz:',
 'ovpn subnet is invalid' => 'Das OpenVPN-Subnetz ist ungültig.',
 'ovpn subnet overlap' => 'OpenVPNSubnetz überschneidet sich mit  ',
+'ovpn_fastio' => 'Fast-IO',
 'ovpn_fragment' => 'Fragmentgrösse',
 'ovpn_mssfix' => 'MSSFIX-Grösse',
 'ovpn_mtudisc' => 'MTU-Discovery',
 'qos warning' => 'Die Regel <strong>muss</strong> wieder gespeichert werden, ansonsten wird sie verworfen!',
 'quick playlist' => 'Quick Playlist',
 'ram' => 'RAM-Speicher',
+'random number generator daemon' => 'Random Number Generator Daemon',
 'read bytes' => 'Gelesene Bytes',
 'read list' => 'Liste der Leseberechtigten',
 'real address' => 'Reale Addresse',
 'show ca certificate' => 'CA Zertifikat anzeigen',
 'show certificate' => 'Zertifikat anzeigen',
 'show crl' => 'Certificate Revocation List anzeigen',
-'show dh' => 'Diffie-Hellman Key anzeigen',
+'show dh' => 'Diffie-Hellman-Parameter anzeigen',
 'show host certificate' => 'Host-Zertifikat anzeigen',
 'show last x lines' => 'die letzten x Zeilen anzeigen',
 'show root certificate' => 'Root-Zertifikat anzeigen',
 'source ip' => 'Quell-IP-Adresse',
 'source ip and port' => 'Quell-IP:Port',
 'source ip bad' => 'Ungültige Quell-IP-Adresse.',
+'source ip country' => 'Quell-IP-Adresse Land',
 'source ip in use' => 'Benutzte Quell-IP:',
 'source ip or net' => 'Quellen-IP oder Netz',
 'source net' => 'Quell-Netz',
 'updxlrtr weekly' => 'wöchentlich',
 'updxlrtr year' => 'einem Jahr',
 'upgrade' => 'upgrade',
-'uplink' => 'Uplink',
 'uplink speed' => 'Uplink-Geschwindigkeit (kBit/sek)',
 'uplink std class' => 'Uploadstandardklasse',
 'upload' => 'Hochladen',
 'upload a certificate' => 'Ein Zertifikat hochladen:',
 'upload a certificate request' => 'Eine Zertifikatsanfrage hochladen:',
 'upload ca certificate' => 'CA-Zertifikat hochladen',
-'upload dh key' => 'Diffie-Hellman Key hochladen',
+'upload dh key' => 'Diffie-Hellman-Parameter hochladen',
 'upload file' => 'Datei zum hochladen',
 'upload new ruleset' => 'Neuen Regelsatz hochladen',
 'upload p12 file' => 'PKCS12-Datei hochladen',
 'vpn aggrmode' => 'IKE Aggressive Mode zugelassen. Wenn möglich, vermeiden (preshared Schlüssel wird im Klartext übertragen)!',
 'vpn altname syntax' => 'Der Subjekt Alternativ Name ist eine durch Komma getrennte Liste von Email, DNS, URI, RID und IP Objekten. <br />Email: eine Email Adresse. Syntax Email: \'copy\' benutzt die Email Adresse aus dem Zertifikatfeld. <br />DNS: ein gültiger Domain Name.<br />URI: eine gültige URI.<br />RID: Registriertes Objekt Identifikation.<br />IP: eine IP Adresse.<br />Bitte beachten: der Zeichensatz ist eingeschränkt und die Groß-/Kleinschreibung ist entscheidend.<br />Beispiel:<br /><b>email:</b>info@ipfire.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/nach/irgendwo',
 'vpn auth-dn' => 'Peer wird identifiziert durch entweder ein IPV4_ADDR, FQDN, USER_FQDN oder DER_ASN1_DN string in Remote ID Feld',
-'vpn configuration main' => 'VPN-Konfiguration',
 'vpn delayed start' => 'Verzögerung bevor VPN gestartet wird (Sekunden)',
 'vpn delayed start help' => 'Falls notwendig, kann diese Verzögerung dazu verwendet werden, um Dynamic-DNS-Updates ordnungsgemäß anzuwenden. 60 ist ein gängiger Wert, wenn ROT (RED) eine dynamische IP Adresse ist.',
 'vpn incompatible use of defaultroute' => 'Hostname=%defaultroute nicht zulässig',
index d41a7ad3435ed0c0d65b4309143e287cb6a4554b..f7bfcd812be4e7b675567f36e72d2a949dfc049f 100644 (file)
@@ -10,7 +10,6 @@
 'Choose Rule' => 'Choose <u>one</u> of the following rules.',
 'Class' => 'Class',
 'Class was deleted' => 'with potential subclasses was deleted',
-'Client status and controlc' => 'Client status and control:',
 'ConnSched action' => 'Action:',
 'ConnSched add action' => 'Add action',
 'ConnSched change profile title' => 'Change to profile:',
@@ -18,8 +17,8 @@
 'ConnSched dial' => 'Connect',
 'ConnSched down' => 'Down',
 'ConnSched hangup' => 'Disconnect',
-'ConnSched ipsecstart' => 'IPSec (re)start',
-'ConnSched ipsecstop' => 'IPSec stop',
+'ConnSched ipsecstart' => 'IPsec (re)start',
+'ConnSched ipsecstop' => 'IPsec stop',
 'ConnSched reboot' => 'Reboot',
 'ConnSched reconnect' => 'Reconnect',
 'ConnSched scheduled actions' => 'Scheduled actions',
@@ -40,6 +39,8 @@
 'MB read' => 'MB read',
 'MB written' => 'MB written',
 'MTU' => 'MTU size:',
+'MTU settings' => 'MTU settings:',
+'Number of Countries for the pie chart' => 'Number of Countries for the pie chart',
 'Number of IPs for the pie chart' => 'Number of IPs for the pie chart',
 'Number of Ports for the pie chart' => 'Number of ports for the pie chart',
 'OVPN' => 'OpenVPN',
 'admin user password has been changed' => 'Admin user password has been changed.',
 'admin users' => 'User with superuser rights',
 'administrator user password' => 'Admin user password:',
-'adsl settings' => 'ADSL settings',
 'advanced' => 'Advanced',
 'advanced server' => 'Advanced server options',
 'advproxy AUTH always required' => 'Require authentication for unrestricted source addresses',
 'are you sure' => 'Are you sure?',
 'arp table entries' => 'ARP Table Entries',
 'artist' => 'Artist',
+'atm device' => 'Device:',
+'atm settings' => 'ATM settings',
 'attemps' => 'Attempts',
 'attention' => 'ATTENTION',
 'august' => 'August',
 'behind a proxy' => 'Behind a proxy:',
 'bewan adsl pci st' => 'TO BE REMOVED',
 'bewan adsl usb' => 'TO BE REMOVED',
-'bit' => 'Bit',
+'bit' => 'bit',
 'bitrate' => 'Bitrate',
 'bleeding rules' => 'Bleeding Edge Snort Rules',
 'blue' => 'BLUE',
 'details' => 'Details',
 'device' => 'Device',
 'devices on blue' => 'Devices on BLUE',
-'dh' => 'Diffie-Hellman Key',
-'dh key warn' => 'Keys with 1024 and 2048 bit takes up to several minutes, 3072 and 4096 bit might needs several hours. Please be patient.',
+'dh' => 'Diffie-Hellman parameters',
+'dh key move failed' => 'Diffie-Hellman parameters move failed.',
+'dh key warn' => 'Creating Diffie-Hellman parameters with lengths of 1024 or 2048 bits takes up to several minutes. Lengths of 3072 or 4096 bits might needs several hours. Please be patient.',
+'dh key warn1' => 'For weak systems or systems with little entropy, it is recommended to upload long Diffie-Hellman parameters by usage of the upload function.',
 'dh name is invalid' => 'Name is invalid, please use "dh1024.pem".',
 'dhcp advopt add' => 'Add a DHCP option',
 'dhcp advopt added' => 'DHCP option added',
 'done' => 'Do it',
 'dos charset' => 'DOS Charset',
 'down and up speed' => 'Enter your Down- and Uplink-Speed <br /> and then press <i>Save</i>.',
-'downlink' => 'Downlink',
 'downlink speed' => 'Downlink speed (kbit/sec)',
 'downlink std class' => 'downlink standard class',
 'download' => 'download',
 'firewallhits' => 'firewallhits',
 'firmware' => 'Firmware',
 'firmware upload' => 'Upload Firmware/Drivers',
-'first' => 'First',
 'fixed ip lease added' => 'Fixed IP lease added',
 'fixed ip lease modified' => 'Fixed IP lease modified',
 'fixed ip lease removed' => 'Fixed IP lease removed',
 'fwdfw wd_tue' => 'Tue',
 'fwdfw wd_wed' => 'Wed',
 'fwdfw xt access' => 'Input',
+'fwhost Custom Host' => 'Host',
+'fwhost Custom Network' => 'Network',
+'fwhost IpSec Host' => 'IPsec host',
+'fwhost IpSec Network' => 'IPsec network',
+'fwhost OpenVPN N-2-N' => 'OpenVPN Net-to-Net',
+'fwhost OpenVPN static host' => 'OpenVPN static host',
+'fwhost OpenVPN static network' => 'OpenVPN static network',
+'fwhost Standard Network' => 'Standard network',
 'fwhost addgrp' => 'Add new network/host group',
 'fwhost addgrpname' => 'Group name:',
 'fwhost addhost' => 'Add new host',
 'g.lite' => 'TO BE REMOVED',
 'gateway' => 'Gateway',
 'gateway ip' => 'Gateway IP',
-'gen dh' => 'Generate Diffie-Hellman key',
+'gen dh' => 'Generate new Diffie-Hellman parameters',
 'gen static key' => 'Generate a static key',
 'generate' => 'Generate root/host zertifikate',
 'generate a certificate' => 'Generate a certificate:',
-'generate dh key' => 'Generate Diffie-Hellman key',
+'generate dh key' => 'Generate Diffie-Hellman parameters',
 'generate iso' => 'Generate ISO',
 'generate root/host certificates' => 'Generate root/host certificates',
 'generate tripwire keys and init' => 'generate tripwire keys and init',
 'lan' => 'LAN',
 'lang' => 'en',
 'languagepurpose' => 'Select the language you wish IPFire to display in:',
-'last' => 'Last',
 'last activity' => 'Last Activity',
 'lateprompting' => 'Lateprompting',
 'lease expires' => 'Lease expires',
 'network traffic graphs others' => 'Network (others)',
 'network updated' => 'Custom Network updated',
 'networks settings' => 'Firewall - Network settings',
+'never' => 'Never',
 'new optionsfw later' => 'Some options need a reboot to take effect',
 'new optionsfw must boot' => 'You must reboot your IPFire',
 'newer' => 'Newer',
 'nonetworkname' => 'No Network Name entered',
 'noservicename' => 'No Service Name entered',
 'not a valid ca certificate' => 'Not a valid CA certificate.',
-'not a valid dh key' => 'Not a valid Diffie-Hellman key. Please use 1024, 2048, 3072 or 4096 bit in PKCS#3 format.',
+'not a valid dh key' => 'Not a valid Diffie-Hellman parameters file. Please use a length of 1024, 2048, 3072 or 4096 bits and the PKCS#3 format.',
 'not enough disk space' => 'Not enough disk space',
 'not present' => '<b>Not</b> present',
 'not running' => 'not running',
 'ovpn config' => 'OVPN-Config',
 'ovpn crypt options' => 'Cryptographic options',
 'ovpn device' => 'OpenVPN device:',
-'ovpn dh' => 'Diffie-Hellman key lenght',
-'ovpn dh name' => 'Diffie-Hellman key name',
+'ovpn dh' => 'Diffie-Hellman parameters length',
+'ovpn dh new key' => 'Generate new Diffie-Hellman parameters',
+'ovpn dh parameters' => 'Diffie-Hellman parameters options',
+'ovpn dh upload' => 'Upload new Diffie-Hellman parameters',
 'ovpn dl' => 'OVPN-Config Download',
+'ovpn engines' => 'Crypto engine',
 'ovpn errmsg green already pushed' => 'Route for green network is always set',
 'ovpn errmsg invalid ip or mask' => 'Invalid network-address or subnetmask',
 'ovpn generating the root and host certificates' => 'Generating the root and host certifictae can take a long time.',
 'ovpn on orange' => 'OpenVPN on ORANGE:',
 'ovpn on red' => 'OpenVPN on RED:',
 'ovpn port in root range' => 'A port number of 1024 or higher is required.',
+'ovpn reneg sec' => 'Session key lifetime:',
 'ovpn routes push' => 'Routes (one per line) e.g. 192.168.10.0/255.255.255.0 192.168.20.0/24',
 'ovpn routes push options' => 'Route push options',
 'ovpn server status' => 'Current OpenVPN server status:',
 'ovpn subnet is invalid' => 'OpenVPN subnet is invalid.',
 'ovpn subnet overlap' => 'OpenVPN Subnet overlaps with : ',
 'ovpn_fastio' => 'Fast-IO',
-'ovpn_fragment' => 'Fragmentsize',
 'ovpn_mssfix' => 'MSSFIX Size',
 'ovpn_mtudisc' => 'MTU-Discovery',
 'ovpn_processprio' => 'Process priority',
 'quick control' => 'Quick Control',
 'quick playlist' => 'Quick Playlist',
 'ram' => 'RAM',
+'random number generator daemon' => 'Random Number Generator Daemon',
 'read bytes' => 'Read Bytes',
 'read list' => 'list with readonly hosts',
 'real address' => 'Real Address',
 'show ca certificate' => 'Show CA certificate',
 'show certificate' => 'Show certificate',
 'show crl' => 'Show certificate revocation list',
-'show dh' => 'Show Diffie-Hellman key',
+'show dh' => 'Show Diffie-Hellman parameters',
 'show host certificate' => 'Show host certificate',
 'show last x lines' => 'Show last x lines',
 'show lines' => 'Show lines',
 'source ip' => 'Source IP',
 'source ip and port' => 'Source IP: Port',
 'source ip bad' => 'Not a valid IP address or a network address.',
+'source ip country' => 'Source IP Country',
 'source ip in use' => 'Source IP in use:',
 'source ip or net' => 'Source IP or Net',
 'source net' => 'Source Net',
 'telephone not set' => 'Telephone not set.',
 'template' => 'Preset',
 'template warning' => 'You have two options to set up Qos. The First, you press the save button and generate the classes and rules on your own. The second, you press the preset button and classes and rules will be set up by a template.',
+'teovpn_fragment' => 'Fragmentsize',
 'test' => 'test',
 'test email could not be sent' => 'Could not sent Testemail',
 'test email was sent' => 'Testemail was send successfully',
 'updxlrtr weekly' => 'weekly',
 'updxlrtr year' => 'one year',
 'upgrade' => 'upgrade',
-'uplink' => 'Uplink',
 'uplink speed' => 'Uplink speed (kbit/sec)',
 'uplink std class' => 'uplink standard class',
 'upload' => 'Upload',
 'upload a certificate' => 'Upload a certificate:',
 'upload a certificate request' => 'Upload a certificate request:',
 'upload ca certificate' => 'Upload CA certificate',
-'upload dh key' => 'Upload Diffie-Hellman key',
+'upload dh key' => 'Upload Diffie-Hellman parameters',
 'upload fcdsl.o' => 'TO BE REMOVED',
 'upload file' => 'Upload file',
 'upload new ruleset' => 'Upload new ruleset',
 'vpn aggrmode' => 'IKE aggressive mode allowed. Avoid if possible (preshared key is transmitted in clear text)!',
 'vpn altname syntax' => 'SubjectAltName is a comma separated list of e-mail, dns, uri, rid and ip objects.<br />email:an email address. Syntax email:copy takes the email field from the cert to be used.<br />DNS:a valid domain name.<br />URI:any valid uri.<br />RID:registered object identifier.<br />IP:an IP address.<br />Note:charset is limited and case is significant.<br />Example:<br /><b>e-mail:</b>ipfire@foo.org<b>,email:</b>copy<b>,DNS:</b>www.ipfire.org<b>,IP:</b>127.0.0.1<b>,URI:</b>http://url/to/something',
 'vpn auth-dn' => 'Peer is identified by either IPV4_ADDR, FQDN, USER_FQDN or DER_ASN1_DN string in remote ID field',
-'vpn configuration main' => 'VPN Configuration',
 'vpn delayed start' => 'Delay before launching VPN (seconds)',
 'vpn delayed start help' => 'If required, this delay can be used to allow dynamic DNS updates to propagate properly. 60 is a common value when RED is a dynamic IP.',
 'vpn incompatible use of defaultroute' => 'hostname=%defaultroute not allowed',
index edb8be0b529bee84fa8c45f0c474f401a07f5dd4..ae5bf14a677979dd5b1f8c281f3392cee7b58b13 100644 (file)
@@ -15,8 +15,8 @@
 'ConnSched change profile title' => 'Cambiar a perfil:',
 'ConnSched days' => 'Días:',
 'ConnSched down' => 'Abajo',
-'ConnSched ipsecstart' => '(Re)iniciarIPSec',
-'ConnSched ipsecstop' => 'Detener IPSec',
+'ConnSched ipsecstart' => '(Re)iniciarIPsec',
+'ConnSched ipsecstop' => 'Detener IPsec',
 'ConnSched reconnect' => 'Reconectar',
 'ConnSched scheduled actions' => 'Acciones planificadas',
 'ConnSched scheduler' => 'Planificador',
@@ -90,7 +90,6 @@
 'admin user password has been changed' => 'El password del usuario Admin ha cambiado',
 'admin users' => 'Usuario con niveles de superusuario (root)',
 'administrator user password' => 'Contraseña del usuario Admin:',
-'adsl settings' => 'Configuraciones ADSL',
 'advanced' => 'Avanzadas',
 'advanced server' => 'Opciones avanzadas de servidor',
 'advproxy AUTH always required' => 'Se necesita autentificación para acceso irrestricto de direcciones de orígen',
 'are you sure' => '¿Esta seguro?',
 'arp table entries' => 'Tabla de entradas ARP:',
 'artist' => 'Artista',
+'atm settings' => 'Configuraciones ATM',
 'attemps' => 'Intentos',
 'august' => 'Agosto',
 'authentication' => 'Autenticación',
index 9f2e7857efd12da780ca72247683ca6210276824..84e15a82bb342bf0759943ca4fc9b2fe5515c06e 100644 (file)
@@ -16,8 +16,8 @@
 'ConnSched change profile title' => 'Changer de profil :',
 'ConnSched days' => 'Jours :',
 'ConnSched down' => 'Arrêt',
-'ConnSched ipsecstart' => 'IPSec (re)démarrage',
-'ConnSched ipsecstop' => 'IPSec arrêt',
+'ConnSched ipsecstart' => 'IPsec (re)démarrage',
+'ConnSched ipsecstop' => 'IPsec arrêt',
 'ConnSched reconnect' => 'Reconnecter',
 'ConnSched scheduled actions' => 'Actions planifiées',
 'ConnSched scheduler' => 'Planificateur',
@@ -92,7 +92,6 @@
 'admin user password has been changed' => 'Le mot de passe admin a été changé.',
 'admin users' => 'Utilisateur avec droits super-utilisateur',
 'administrator user password' => 'Mot de passe de l\'administrateur:',
-'adsl settings' => 'Réglages ADSL',
 'advanced' => 'Avancé',
 'advanced server' => 'Options avancées du serveur',
 'advproxy AUTH always required' => 'Exige l\'authentification pour un accès sans restriction des adresses sources',
 'are you sure' => 'Etes vous sûr ?',
 'arp table entries' => 'Table d\'entrées ARP:',
 'artist' => 'Artiste',
+'atm settings' => 'Réglages ATM',
 'attemps' => 'Tentatives',
 'august' => 'Août',
 'authentication' => 'Authentification :',
index 43d76ebf5363d328be6bbe98f31c2233e59b24c7..767f93b95da6d905df213cacb453e0bb044efcee 100644 (file)
 'ConnSched add action' => 'Voeg actie toe',
 'ConnSched change profile title' => 'Gebruik profiel:',
 'ConnSched days' => 'Dagen:',
+'ConnSched dial' => 'Verbind',
 'ConnSched down' => 'Omlaag',
-'ConnSched ipsecstart' => 'IPSec (her)starten',
-'ConnSched ipsecstop' => 'IPSec stoppen',
+'ConnSched hangup' => 'Verbreek',
+'ConnSched ipsecstart' => 'IPsec (her)starten',
+'ConnSched ipsecstop' => 'IPsec stoppen',
+'ConnSched reboot' => 'Herstarten',
 'ConnSched reconnect' => 'Opnieuw verbinden',
 'ConnSched scheduled actions' => 'Ingeplande acties',
 'ConnSched scheduler' => 'Scheduler',
 'ConnSched select profile' => 'Selecteer profiel',
+'ConnSched shutdown' => 'Afsluiten',
 'ConnSched time' => 'Tijd:',
 'ConnSched up' => 'Omhoog',
 'ConnSched weekdays' => 'Dagen van de week:',
 'Level7 Rule' => 'Level7-Regel',
 'Level7 rule' => 'Level7 regel',
 'Local VPN IP' => 'Intern Netwerk (GROEN):',
+'MB read' => 'MB gelezen',
+'MB written' => 'MB geschreven',
 'MTU' => 'MTU grootte:',
 'Number of IPs for the pie chart' => 'Aantal IPs voor de taartdiagram',
 'Number of Ports for the pie chart' => 'Aantal poorten voor de taartdiagram',
 'OVPN' => 'OpenVPN',
 'OpenVPN' => 'OpenVPN',
 'Pages' => 'Pagina\'s',
-'Ping' => 'Ping:',
+'Ping' => 'Ping :',
 'Port Rule' => 'Poort-Regel',
 'QoS not enabled' => 'QoS is niet ingeschakeld!',
 'Queuelenght' => 'Wachtrijlengte',
 'add xtaccess' => 'Voeg een externe toegang toe',
 'add-route' => 'Extra push route',
 'added from dhcp lease list' => 'Toegevoegd van DHCP lease-lijst.',
+'addons' => 'Toevoegingen',
 'admin user password has been changed' => 'Beheerderswachtwoord is gewijzigd.',
 'admin users' => 'Gebruiker met beheerdersrechten.',
 'administrator user password' => 'Beheerderswachtwoord:',
-'adsl settings' => 'ADSL instellingen',
 'advanced' => 'Geavanceerd',
 'advanced server' => 'Geavanceerde server opties',
 'advproxy AUTH always required' => 'Authenticatie vereist voor ongelimiteerde bronadressen.',
 'advproxy banned mac clients' => 'Verboden MAC-adressen (een per regel)',
 'advproxy cache management' => 'Cache beheer',
 'advproxy cache replacement policy' => 'Cache vervangingsbeleid',
+'advproxy cache-digest' => 'Inschakelen Cache-Digest Generation',
 'advproxy chgwebpwd ERROR' => 'F O U T :',
 'advproxy chgwebpwd SUCCESS' => 'S U C C E S V O L :',
 'advproxy chgwebpwd change password' => 'Wijzig wachtwoord',
 'advproxy errmsg password length 1' => 'Wachtwoord moet tenminste ',
 'advproxy errmsg password length 2' => ' tekens bevatten',
 'advproxy errmsg passwords different' => 'Wachtwoorden zijn niet gelijk',
+'advproxy errmsg proxy ports equal' => 'De proxy poort en de transparante poort kunnen niet gelijk zijn.',
 'advproxy errmsg radius port' => 'Ongeldig RADIUS poortnummer',
 'advproxy errmsg radius secret' => 'RADIUS gedeeld geheim vereist',
 'advproxy errmsg radius server' => 'Ongeldig IP-adres voor RADIUS server',
 'advproxy on' => 'Proxy aan',
 'advproxy privacy' => 'Privacy',
 'advproxy proxy port' => 'Proxy poort',
+'advproxy proxy port transparent' => 'Transparante poort',
 'advproxy ram cache size' => 'Geheugen cache-grootte (MB)',
 'advproxy redirector children' => 'Aantal filterprocessen',
 'advproxy reset' => 'Reset',
 'advproxy web browser' => 'Webbrowser',
 'advproxy wednesday' => 'Woe',
 'again' => 'Nogmaals:',
+'age second' => 'seconde',
+'age seconds' => 'seconden',
+'age shour' => 'uur',
+'age sminute' => 'min',
+'age ssecond' => 'sec',
 'aktiv' => 'Actief',
 'album' => 'Album',
 'alcatelusb help' => 'Om gebruik te kunnen maken van de SpeedTouch 330 of SpeedTouch USB modem moet u eerst de firmware naar uw IPFire machine uploaden. U kunt de <b>Embedded Firmware</b> voor de SpeedTouch 330 downloaden van speedtouch.com. Pak het uit en upload het juiste bestand naar uw modem: KQD6_3.xxx als Rev<4 of ZZZL_3.xxx, voor Rev=4 gebruik het formulier hieronder.',
 'are you sure' => 'Weet u het zeker?',
 'arp table entries' => 'ARP Tabelingangen:',
 'artist' => 'Artiest',
+'atm settings' => 'ATM instellingen',
 'attemps' => 'Pogingen',
 'attention' => 'LET OP',
 'august' => 'Augustus',
 'behind a proxy' => 'Achter een proxy:',
 'bewan adsl pci st' => 'WORDT VERWIJDERD',
 'bewan adsl usb' => 'WORDT VERWIJDERD',
+'bit' => 'Bit',
 'bitrate' => 'Bitsnelheid',
 'bleeding rules' => 'Nieuwste Snort regels',
 'blue' => 'BLAUW',
 'ccd err iroute' => 'Netwerkadres voor route is ongeldig.',
 'ccd err irouteexist' => 'Deze route is al in gebruik.',
 'ccd err isipsecnet' => 'Het gegeven subnet-adres is al in gebruik door een IPsec netwerk.',
+'ccd err isipsecrw' => 'Het gegeven subnet-adres is al in gebruik door het IPsec rw netwerk.',
+'ccd err isovpnn2n' => 'The subnet address is already in use for an OpenVPN net-to-net connection.',
 'ccd err isovpnnet' => 'Subnet-adres is al in gebruik voor OpenVPN Server.',
 'ccd err issubnet' => 'Subnet-adres is al in gebruik.',
 'ccd err name' => 'Kies een naam.',
 'ccd hint' => 'Op deze pagina kunt u statische netwerken definiëren vanwaar de roadwarrior clients vaste IP-adressen toegewezen kunnen krijgen.',
 'ccd invalid' => 'Ongeldig.',
 'ccd iroute' => 'IPFire heeft toegang tot deze netwerken aan de klant-site.',
+'ccd iroute2' => 'Client heeft toegang tot deze netwerken op IPFire\'s site',
 'ccd iroutehint' => 'Attentie! Als u deze instellingen wijzigt, moet u de OpenVPN server herstarten om deze instellingen actief te laten worden!',
 'ccd modify' => 'Wijzig netwerk',
 'ccd name' => 'Naam',
 'could not open installed updates file' => 'Kan het geïnstalleerde update-bestand niet openen.',
 'could not open update information file' => 'Kan het update informatiebestand niet openen. Het update-bestand is beschadigd.',
 'could not retrieve common name from certificate' => 'Kan de gemeenschappelijke naam van het certificaat niet bepalen.',
+'count' => 'Aantal',
+'countries' => 'Landen',
 'country' => 'Land',
+'country codes and flags' => 'Landcodes en vlaggen:',
+'countrycode' => 'Code',
 'cpu frequency per' => 'CPU frequentie per',
 'cpu idle usage' => 'Idle CPU gebruik',
 'cpu interrupt usage' => 'Interrupt CPU gebruik',
 'ddns noip prefix' => 'Om no-ip in groepsmodus te gebruiken, zet <b>%</b> voor de hostnaam',
 'deactivate' => 'deactiveer',
 'deactivate user' => 'deactiveer gebruiker',
+'dead peer detection' => 'Dode Peer-detectie',
 'debugme' => 'Nog niet geïmplementeerd',
 'december' => 'December',
 'deep scan directories' => 'Scan recursief',
 'def lease time' => 'Standaard leasetijd',
+'default ip' => 'Standaard IP adres',
 'default lease time' => 'Standaard leasetijd (min.):',
 'default networks' => 'Standaard netwerken',
 'default renewal time' => 'Standaard vernieuwtijd',
 'destination port numbers' => 'Bestemmingspoort moet een geldig poortnummer of poortreeks zijn.',
 'destination port overlaps' => 'Bestemming-poortreeks overlapt een bestaande poortreeks.',
 'detail level' => 'Detailniveau',
+'details' => 'Details',
 'device' => 'Apparaat',
 'devices on blue' => 'Apparaten op BLAUW',
 'dhcp advopt add' => 'Voeg een DHCP optie toe',
 'dmz pinhole rule added' => 'DMZ pinhole regel toegevoegd; DMZ regel wordt herstart.',
 'dmz pinhole rule removed' => 'DMZ pinhole regel verwijderd; DMZ wordt herstart',
 'dmzpinholes for same net not necessary' => 'DMZ Pinholes zijn niet per se nodig voor hetzelfde net. Selecteer verschillende bron- of bestemmings-net.',
+'dnat address' => 'Firewallinterface',
 'dns address deleted' => 'Succesvol verwijderd!',
 'dns address deleted txt' => 'De DNS-Server adressen zijn succesvol verwijderd.<br />U moet herstarten of opnieuw verbinden om de wijzigingen actief te laten worden!',
 'dns address done' => 'De DNS-server adresinstellingen zullen worden opgeslagen.',
 'dns saved txt' => 'De twee ingevoerde DNS serveradressen zijn succesvol opgeslagen.<br />U moet herstarten of opnieuw verbinden om de wijzigingen actief te laten worden!',
 'dns server' => 'DNS Server',
 'dns title' => 'Domein Naam Systeem',
-'do not log this port list' => 'Negeer deze poorten voordat ze worden gelogd (vermindert loggrootte)',
+'dnsforward' => 'DNS Forwarding',
+'dnsforward add a new entry' => 'Voeg een nieuwe regel toe',
+'dnsforward configuration' => 'DNS forward configuratie',
+'dnsforward edit an entry' => 'Wijzig een bestaande regel',
+'dnsforward entries' => 'Huidige regels',
+'dnsforward forward_server' => 'Naamserver',
+'dnsforward zone' => 'Zone',
+'do not log this port list' => 'Negeer deze poortlijst voordat deze wordt gelogd (beperkt grootte logbestand)',
 'dod' => 'Inbellen op afroep',
 'dod for dns' => 'Inbellen op afroep voor DNS:',
 'dod not compatible with ddns' => 'Inkiezen op afroep compatibel met de dynamische DNS Diesten',
 'done' => 'Doe het',
 'dos charset' => 'DOS tekenset',
 'down and up speed' => 'Voer uw down- en uploadsnelheid in<br /> en klik dan op <i>Opslaan</i>.',
+'downlink' => 'Downlink',
 'downlink speed' => 'Downlink snelheid (kbit/sec)',
 'downlink std class' => 'downlink standaard klasse',
 'download' => 'download',
 'download pkcs12 file' => 'Download PKCS12 bestand',
 'download root certificate' => 'Download root certificaat',
 'dpd action' => 'Dead peer-detectie actie',
+'dpd delay' => 'Vertraging',
+'dpd timeout' => 'Timeout',
 'driver' => 'Driver',
+'drop action' => 'Standaard gedrag van (forward) firewall in mode "Geblokkeerd"',
+'drop action1' => 'Standaard gedrag van (uitgaande) firewall in mode "Geblokkeerd"',
+'drop action2' => 'Standaard gedrag van (input) firewall',
+'drop forward' => 'Log geblokkeerde forward packetten',
 'drop input' => 'Log geblokkeerde input pakketten',
 'drop newnotsyn' => 'Log geblokkeerde new-not-syn pakketten',
 'drop output' => 'Log geblokkeerde output pakketten',
 'enabledtitle' => 'Ingeschakeld',
 'encapsulation' => 'Inkapseling',
 'encrypted' => 'Gecodeerd',
+'encryption' => 'Codering:',
 'end address' => 'Eindadres:',
 'enter ack class' => 'Voer de ACK-klasse in <br /> en klik dan op <i>Opslaan</i>.',
 'enter data' => 'Maak uw instellingen <br /> en klik dan op <i>Opslaan</i>.',
+'entropy' => 'Entropy',
+'entropy graphs' => 'Entropy grafieken',
 'err bk 1' => 'Fout bij aanmaken van archief',
 'err bk 10 password' => 'Fout met het back-up wachtwoord',
 'err bk 2 key' => 'Fout bij het aanmaken van een sleutelbestand',
 'firewall logs' => 'Firewall Logs',
 'firewall logs ip' => 'Fw-Logdgrafieken (IP)',
 'firewall logs port' => 'Fw-Loggrafieken (Poort)',
+'firewall rules' => 'Firewallregels',
 'firewallhits' => 'firewalltreffers',
 'firmware' => 'Firmware',
 'firmware upload' => 'Upload Firmware/Drivers',
+'first' => 'Eerste',
 'fixed ip lease added' => 'Vast IP-lease toegevoegd',
 'fixed ip lease modified' => 'Vast IP-lease gewijzigd',
 'fixed ip lease removed' => 'Vast IP-lease verwijderd',
+'flag' => 'Vlag',
 'force update' => 'Forceer update',
 'force user' => 'forceer alle nieuwe bestanden naar de gebruiker',
+'forward firewall' => 'Firewall',
 'forwarding rule added' => 'Forwarding regel toegevoegd; herstarten van forwarder',
 'forwarding rule removed' => 'Forwarding regel verwijderd; herstarten van forwarder',
 'forwarding rule updated' => 'Forwarding regel bijgewerkt; herstarten van  forwarder',
 'from email user' => 'Van e-mail gebruiker',
 'from warn email bad' => 'Het van e-mailadres is niet geldig',
 'fw blue' => 'Firewallopties voor de BLAUWE interface',
+'fw default drop' => 'Firewallbeleid',
 'fw logging' => 'Firewall logging',
+'fw settings' => 'Firewall instellingen',
+'fw settings color' => 'Toon gekleurde regels in tabel',
+'fw settings dropdown' => 'Toon alle netwerken op omgeving van aangemaakte regels',
+'fw settings remark' => 'Toon opmerkingen in tabel',
+'fw settings ruletable' => 'Toon lege tabellen',
+'fwdfw ACCEPT' => 'ACCEPTEER',
+'fwdfw DROP' => 'BLOKKEER',
+'fwdfw MODE1' => 'Blokeer alle pakketten',
+'fwdfw MODE2' => 'Accepteer alle pakketten',
+'fwdfw REJECT' => 'WEIGER',
+'fwdfw action' => 'Actie',
+'fwdfw additional' => 'Extra instellingen',
+'fwdfw addrule' => 'Voeg toe/Wijzig regel:',
+'fwdfw all icmp' => 'Alle ICMP types',
+'fwdfw change' => 'Bijwerken',
+'fwdfw copy' => 'Kopiëer',
+'fwdfw delete' => 'Verwijder',
+'fwdfw dnat' => 'Bestemmings-NAT (Poort forwarding)',
+'fwdfw dnat error' => 'U kunt slechts één host selecteren voor DNAT. Groepen of netwerken zijn niet toegestaan.',
+'fwdfw dnat extport' => 'De externe poort moet leeg zijn wanneer bron-NAT regels worden gebruikt.',
+'fwdfw dnat nochoice' => 'Kies een bron-NAT of bestemmings-NAT adres uit de NAT-sectie.',
+'fwdfw dnat porterr' => 'U moet een enkele poort of poortreeks (tcp/udp) selecteren voor NAT',
+'fwdfw dnat porterr2' => 'Kan geen externe poort (NAT) gebruiken als er geen bestemmingspoort is gedefiniëerd.',
+'fwdfw edit' => 'Wijzigen',
+'fwdfw err nosrc' => 'Geen bron geselecteerd.',
+'fwdfw err nosrcip' => 'Geef a.u.b. het bron IP adres.',
+'fwdfw err notgt' => 'Geen bestemming geselecteerd.',
+'fwdfw err notgtip' => 'Geef a.u.b. een bestemmings IP adres.',
+'fwdfw err prot_port' => 'Bron- of doelpoort zijn niet toegestaan met het geselecteerde protocol',
+'fwdfw err prot_port1' => 'Als een bron- of doelpoort wordt gebruikt, moet het TCP of UDP protocol worden geselecteerd.',
+'fwdfw err remark' => 'Ongeldige tekens in opmerking.',
+'fwdfw err ruleexists' => 'Deze regel bestaat al.',
+'fwdfw err same' => 'Bron en bestemming zijn gelijk.',
+'fwdfw err samesub' => 'Bron- en bestemmings IP adres zitten in hetzelfde subnet.',
+'fwdfw err src_addr' => 'Ongeldig bron MAC/IP adres.',
+'fwdfw err tgt_addr' => 'Ongeldig bestemmings IP adres.',
+'fwdfw err tgt_grp' => 'De bestemmings servicegroep is leeg',
+'fwdfw err tgt_mac' => 'Een MAC adres kan niet worden gebruikt als bestemming.',
+'fwdfw err tgt_port' => 'Ongeldige bestemmingspoort.',
+'fwdfw err time' => 'U moet tenminste één dag selecteren.',
+'fwdfw external port nat' => 'Externe poort (NAT)',
+'fwdfw final_rule' => 'Laatste regel: ',
+'fwdfw from' => 'Van:',
+'fwdfw hint ip1' => 'De laatst gegenereerde regel mag nooit overeenkomen, omdat bron- en bestemmingssubnet kunnen overlappen.',
+'fwdfw hint ip2' => 'Controleer of deze regel juist is: ',
+'fwdfw hint mac' => 'De bestemmingsgroep bevat MAC adressen; deze zullen worden overgeslagen tijdens het aanmaken van de regels.',
+'fwdfw iface' => 'Interface',
+'fwdfw ipsec network' => 'IPsec netwerken:',
+'fwdfw log' => 'Log',
+'fwdfw log rule' => 'Log regel',
+'fwdfw man port' => 'Poort(en):',
+'fwdfw many' => 'Meerdere',
+'fwdfw menu' => 'Firewall',
+'fwdfw movedown' => 'Omlaag',
+'fwdfw moveup' => 'Omhoog',
+'fwdfw natport used' => 'De gegeven poort voor NAPT is al in gebruik door een andere DNAT regel.',
+'fwdfw newrule' => 'Nieuwe regel',
+'fwdfw p2p txt' => 'Toestaan/Verbieden toegang tot P2P netwerken.',
+'fwdfw pol allow' => 'Toegestaan',
+'fwdfw pol block' => 'Geblokkeerd',
+'fwdfw pol text' => 'Stel het standaard gedrag in voor verbindingen van lokale netwerken. U kunt alle verbindingen standaard toestaan of blokkeren. Verbindingen tussen lokale netwerken zijn tevens geblokeerd in de laatst genoemde modus.',
+'fwdfw pol text1' => 'Stel het standaard gedrag in voor verbindingen die door de firewall zelf zijn geïnitieerd. Let op! U kunt uzelf hiermee buiten sluiten.',
+'fwdfw pol title' => 'Standaard firewall gedrag',
+'fwdfw prot41' => 'IPv6 Encapsulation (Protocol 41)',
+'fwdfw prot41 short' => 'IPv6 Encap',
+'fwdfw red' => 'RED',
+'fwdfw reread' => 'Wijzigingen toepassen',
+'fwdfw rule action' => 'Regel actie:',
+'fwdfw rule activate' => 'Activeer regel',
+'fwdfw rulepos' => 'Regel positie',
+'fwdfw rules' => 'Regels',
+'fwdfw snat' => 'Bron NAT',
+'fwdfw source' => 'Bron',
+'fwdfw sourceip' => 'Bronadres (MAC/IP adres of netwerk):',
+'fwdfw std network' => 'Standaard netwerken:',
+'fwdfw target' => 'Bestemming',
+'fwdfw targetip' => 'Bestemmingsadres (IP adres of netwerk):',
+'fwdfw till' => 'Tot:',
+'fwdfw time' => 'Tijdvak',
+'fwdfw timeframe' => 'Gebruik tijdvakken',
+'fwdfw toggle' => 'Activeer of deactiveer',
+'fwdfw togglelog' => 'Activeer of deactiveer logging',
+'fwdfw use nat' => 'Gebruik Netwerk Adres Translatie (NAT)',
+'fwdfw use srcport' => 'Bronpoort:',
+'fwdfw use srv' => 'Bestemmingspoort:',
+'fwdfw useless rule' => 'Deze regel kan niet gebruikt worden.',
+'fwdfw warn1' => 'Dit kan leiden tot firewallregels die worden toegepast op netwerken waar ze niet voor bedoeld zijn.',
+'fwdfw wd_fri' => 'Vri',
+'fwdfw wd_mon' => 'Maa',
+'fwdfw wd_sat' => 'Zat',
+'fwdfw wd_sun' => 'Zon',
+'fwdfw wd_thu' => 'Don',
+'fwdfw wd_tue' => 'Din',
+'fwdfw wd_wed' => 'Woe',
+'fwdfw xt access' => 'Input',
+'fwhost Custom Host' => 'Host',
+'fwhost Custom Network' => 'Netwerk',
+'fwhost IpSec Host' => 'IPsec host',
+'fwhost IpSec Network' => 'IPsec netwerk',
+'fwhost OpenVPN N-2-N' => 'OpenVPN Net-to-Net',
+'fwhost OpenVPN static host' => 'OpenVPN statische host',
+'fwhost OpenVPN static network' => 'OpenVPN statisch netwerk',
+'fwhost Standard Network' => 'Standaard netwerk',
+'fwhost addgrp' => 'Voeg nieuw netwerk/host groep toe',
+'fwhost addgrpname' => 'Groepnaam:',
+'fwhost addhost' => 'Nieuwe host toevoegen',
+'fwhost addnet' => 'Nieuw netwerk toevoegen',
+'fwhost addservice' => 'Nieuwe dienst toevoegen',
+'fwhost addservicegrp' => 'Nieuwe dienstgroep toevoegen',
+'fwhost any' => 'Elke',
+'fwhost attention' => 'LET OP',
+'fwhost back' => 'Terug',
+'fwhost blue' => 'Blauw',
+'fwhost ccdhost' => 'OpenVPN clients:',
+'fwhost ccdnet' => 'OpenVPN netwerken:',
+'fwhost change' => 'Wijzigen',
+'fwhost changeremark' => 'U hebt de opmerking aangepast',
+'fwhost cust addr' => 'Hosts',
+'fwhost cust grp' => 'Netwerk/Host Groepen',
+'fwhost cust net' => 'Netwerken',
+'fwhost cust service' => 'Diensten',
+'fwhost cust srvgrp' => 'Dienstengroepen',
+'fwhost deleted' => 'Verwijderd',
+'fwhost empty' => 'Geen regels gedefinieerd',
+'fwhost err addr' => 'Ongeldig IP adres of subnet',
+'fwhost err addrgrp' => 'Geef a.u.b. een groepnaam op',
+'fwhost err empty' => 'Vul a.u.b. alle invoervelden in',
+'fwhost err emptytable' => 'Er zijn geen regels in deze groep',
+'fwhost err groupempty' => 'De geselecteerde groep is leeg',
+'fwhost err grpexist' => 'Een groep met dezelfde naam bestaat al',
+'fwhost err hostexist' => 'Een host met dezelfde naam bestaat al',
+'fwhost err hostorip' => 'Ongeldige naam of IP adres',
+'fwhost err ip' => 'Ongeldig IP adres',
+'fwhost err ipcheck' => 'Dit IP adres is al in gebruik',
+'fwhost err ipmac' => 'Ongeldig IP/MAC adres',
+'fwhost err ipwithsub' => 'Geef a.u.b. alleen een IP adres (zonder subnetmasker)',
+'fwhost err isccdhost' => 'Deze naam is al in gebruik door een OpenVPN client verbinding',
+'fwhost err isccdiphost' => 'Dit IP adres is al in gebruik door een OpenVPN client verbinding',
+'fwhost err isccdipnet' => 'Dit IP adres is al in gebruik door een OpenVPN netwerk verbinding',
+'fwhost err isccdnet' => 'Deze naam is al in gebruik door een OpenVPN netwerk',
+'fwhost err isingrp' => 'Deze regel bestaat al in de groep',
+'fwhost err mac' => 'Ongeldig MAC adres',
+'fwhost err maxservicetcp' => 'Het maximale aantal van 15 TCP diensten is bereikt in deze groep (poortreeksen tellen dubbel)',
+'fwhost err maxserviceudp' => 'Het maximale aantal van 15 UDP diensten is bereikt in deze groep (poortreeksen tellen dubbel)',
+'fwhost err name' => 'Ongeldige naam. Toegestane tekens: hoofd- en kleine letters, cijfers, spatie en min-teken.',
+'fwhost err name1' => 'Geen naam gegeven.',
+'fwhost err net' => 'Netwerk/IP adres bestaat al',
+'fwhost err netexist' => 'Een netwerk met dezelfde naam bestaat al',
+'fwhost err partofnet' => 'Het netwerk is een subnet van een bestaand netwerk.',
+'fwhost err port' => 'Geen poort gegeven',
+'fwhost err remark' => 'Ongeldige opmerking. Toegestane tekens: hoofd- en kleine letters, cijfers, spatie, min-teken, accolades, puntkomma, vertikale streep en punt.',
+'fwhost err srv exists' => 'Een dienst met dezelfde naam bestaat al',
+'fwhost err srvexist' => 'Deze dienst bestaat al in de groep',
+'fwhost err sub32' => 'Geef a.u.b. een enkele hostnaam op, geen netwerk.',
+'fwhost green' => 'Groen',
+'fwhost hint' => 'Notitie',
+'fwhost hosts' => 'Firewall Hosts',
+'fwhost icmptype' => 'ICMP type:',
+'fwhost ip_mac' => 'IP/MAC adres',
+'fwhost ipadr' => 'IP adres:',
+'fwhost ipsec host' => 'IPsec clients:',
+'fwhost ipsec net' => 'IPsec netwerken:',
+'fwhost menu' => 'Firewallgroepen',
+'fwhost netaddress' => 'Netwerkadressen',
+'fwhost newgrp' => 'Netwerk/Host Groepen',
+'fwhost newhost' => 'Hosts',
+'fwhost newnet' => 'Netwerken',
+'fwhost newservice' => 'Diensten',
+'fwhost newservicegrp' => 'Dienstgroepen',
+'fwhost orange' => 'Oranje',
+'fwhost ovpn_n2n' => 'OpenVPN Net-to-Net',
+'fwhost port' => 'Poort(en)',
+'fwhost prot' => 'Protocol',
+'fwhost reread' => 'Firewallregels moeten bijgewerkt worden.',
+'fwhost reset' => 'Annuleren',
+'fwhost services' => 'Diensten:',
+'fwhost srv_name' => 'Dienstnamen',
+'fwhost stdnet' => 'Standaard netweken:',
+'fwhost type' => 'Type',
+'fwhost used' => 'Gebruikt',
+'fwhost welcome' => 'Hier kunt u enkele hosts, netwerken en diensten groeperen, waarmee nieuwe regels sneller aangemaakt kunnen worden.',
+'fwhost wo subnet' => '(zonder subnet)',
 'g.dtm' => 'WORDT VERWIJDERD',
 'g.lite' => 'WORDT VERWIJDERD',
 'gateway' => 'Gateway',
 'graph per' => 'per',
 'green' => 'GROEN',
 'green interface' => 'Groene Interface',
+'grouptype' => 'Groeptype:',
 'guaranteed bandwith' => 'Gegarandeerde bandbreedte',
 'guardian alertfile' => 'Meldingenbestand',
 'guardian configuration' => 'Guardian configuratie',
 'harddisk temperature' => 'Harddisk temperatuur',
 'harddisk temperature graphs' => 'hdd temperatuurgrafieken',
 'hardware graphs' => 'Hardware grafieken',
+'hardware support' => 'Hardware ondersteuning',
 'hdd temperature in' => 'Harddisk temperatuur in',
 'help' => 'Help',
 'high' => 'Hoog',
 'inactive' => 'inactief',
 'include logfiles' => 'Inclusief logbestanden',
 'incoming' => 'inkomend',
+'incoming firewall access' => 'Inkomende firewalltoegang',
 'incoming traffic in bytes per second' => 'Inkomend verkeer',
 'incorrect password' => 'Onjuist wachtwoord',
 'info' => 'Info',
 'installed' => 'Geïnstalleerd',
 'installed updates' => 'Geïnstalleerde updates:',
 'instant update' => 'Directe update',
+'integrity' => 'Integriteit:',
 'interface' => 'Interface',
 'interfaces' => 'Interfaces',
 'internet' => 'INTERNET',
 'invalid input for dhcp dns' => ' Ongeldige invoer voor DHCP DNS',
 'invalid input for dhcp domain' => ' Ongeldige invoer voor DHCP domein',
 'invalid input for dhcp wins' => ' Ongeldige invoer voor DHCP WINS',
+'invalid input for dpd delay' => 'Ongeldige invoer voor DPD vertraging',
+'invalid input for dpd timeout' => 'Ongeldige invoer voor DPD timeout',
 'invalid input for e-mail address' => ' Ongeldige invoer voor e-mailadres.',
 'invalid input for esp keylife' => ' Ongeldige invoer voor ESP sleutel levensduur',
 'invalid input for hostname' => ' Ongeldige invoer voor hostnaam.',
 'ipfire side is invalid' => 'IPFire-zijde is ongeldig.',
 'ipfires hostname' => 'IPFire\'s Hostnaam',
 'ipinfo' => 'IP info',
+'ipsec' => 'IPsec',
+'ipsec network' => 'IPsec netwerk',
+'ipsec no connections' => 'Geen actieve IPsec verbindingen',
 'iptable rules' => 'IPTable regels',
 'iptmangles' => 'IPTable Mangles',
 'iptnats' => 'IPTable Network Adrestranslatie',
 'lan' => 'LAN',
 'lang' => 'nl',
 'languagepurpose' => 'Selecteer de taal die u wilt gebruiken voor IPFire:',
+'last' => 'Laatste',
 'last activity' => 'Laatste activiteit',
 'lateprompting' => 'Laat-prompting',
 'lease expires' => 'Lease verloopt',
+'least preferred' => 'Minste voorkeur',
 'legend' => 'Legenda',
 'length' => 'Lengte',
+'lifetime' => 'Levensduur:',
 'line' => 'Lijn',
 'linkq' => 'Lijnkwaliteit',
 'load printer' => 'Laad printer',
 'mac address saved txt' => 'Het MAC-adres is succesvol opgeslagen, maar de wijzigingen worden pas actief na een herstart of opnieuw verbinden.',
 'mac address title' => 'Medium Access Control Adres',
 'mac desc' => 'Hier kunt u het MAC-adres van red0 wijzigen. Het adres moet in hexadecimale waarden (0-9,a-f) ingevoerd worden, <br />bijv. 00-01-02-0e-b8-d6 of 00:01:02:0e:b8:d6.',
+'mac filter' => 'MAC filter',
 'mac new' => 'nieuw MAC-adres:',
 'mac1 new' => 'nieuw MAC-adres 1 (vdsl-inet):',
 'mac2 new' => 'nieuw MAC-adres 2 (vdsl-iptv):',
 'max size' => 'Max. objectgrootte (KB):',
 'max throughput' => 'Maximum doorvoersnelheid',
 'maximal' => 'Maximaal',
+'maximum' => 'Maximum',
 'maximum retries' => 'Maximum aantal pogingen:',
 'may' => 'Mei',
 'mbmon display' => 'Display',
 'min delay' => 'Minimum vertraging',
 'min size' => 'Min. objectgrootte (KB):',
 'minimal' => 'Minimaal',
+'minimum' => 'Minimum',
 'minute' => 'Minuut',
 'minutes' => 'Minuten',
 'misc-options' => 'Overige opties',
 'monthly volume start day short' => 'Eerste dag',
 'months' => 'maanden',
 'more' => 'meer',
+'most preferred' => 'Meeste voorkeur',
 'mount' => 'Koppelen',
 'mounted on' => 'Gekoppeld op',
 'mpfire' => 'Mediaspeler voor IPFire',
 'no eciadsl synch.bin file' => 'Geen ECI ADSL synch.bin bestand. Bestand uploaden a.u.b.',
 'no filter pass' => 'Geef de standaard-klasse voor niet-gefilterde pakketten.',
 'no fritzdsl driver' => 'Geen Fritz!DSL driver. Bestand uploaden a.u.b.',
+'no hardware random number generator' => 'Dit systeem heeft geen mogelijkheden voor entropie.',
 'no information available' => 'Geen informatie beschikbaar.',
 'no log selected' => 'Geen log geselecteerd',
 'no modem selected' => 'Geen modem geselecteerd',
 'not running' => 'loopt niet',
 'not set' => 'niet gezet',
 'notes' => 'Notities',
+'notice' => 'Opmerking',
 'november' => 'November',
 'ntp common settings' => 'Algemene instellingen',
 'ntp configuration' => 'NTP configuratie',
 'openvpn fragment allowed with udp' => 'Het gebruik van fragment is alleen toegestaan met het UDP protocol.',
 'openvpn log' => 'OpenVPN Log',
 'openvpn mssfix allowed with udp' => 'Het gebruik van "mssfix" is alleen toegestaan met het UDP protocol.',
+'openvpn network' => 'OpenVPN netwerken',
 'openvpn prefix local subnet' => 'Het gebruik van de prefix notatie wordt niet ondersteunt op het lokale subnet. Geef a.u.b. een ander subnetmasker zoals 255.255.255.0.',
 'openvpn prefix openvpn subnet' => 'Het gebruik van de prefix notatie wordt niet ondersteund voor het OpenVPN subnet. Geef a.u.b. een ander subnetmasker zoals 255.255.255.0.',
 'openvpn prefix remote subnet' => 'Het gebruik van de prefix notatie wordt niet ondersteund voor het remote subnet. Geef a.u.b. een ander subnetmasker zoals 255.255.255.0.',
 'out' => 'Uit',
 'outgoing' => 'uitgaand',
 'outgoing firewall' => 'Uitgaande Firewall',
+'outgoing firewall access' => 'Uitgaande firewalltoegang',
 'outgoing firewall add ip group' => 'Toevoegen IP-adresgroep',
 'outgoing firewall add mac group' => 'Toevoegen MAC-adresgroep',
 'outgoing firewall edit ip group' => 'Wijzig IP-adresgroep',
 'ovpn errmsg green already pushed' => 'Route voor het groene netwerk is altijd aangezet',
 'ovpn errmsg invalid ip or mask' => 'Ongeldig netwerkadres of subnetmasker',
 'ovpn log' => 'OVPN-Log',
+'ovpn mgmt in root range' => 'Een poortnummer hoger dan 1024 is vereist.',
 'ovpn mtu-disc' => 'Pad MTU Discovery',
 'ovpn mtu-disc and mtu not 1500' => 'Pad MTU Discovery vereist een MTU van 1500.',
 'ovpn mtu-disc maybe' => 'Optioneel',
 'ovpn mtu-disc off' => 'Uitgeschakeld',
 'ovpn mtu-disc with mssfix or fragment' => 'Pad MTU Discovery kan niet worden gebruikt met mssfix of fragment.',
 'ovpn mtu-disc yes' => 'Geforceerd',
+'ovpn no connections' => 'Geen actieve OpenVPN verbindingen',
 'ovpn on blue' => 'OpenVPN op BLAUW',
 'ovpn on orange' => 'OpenVPN op ORANJE',
 'ovpn on red' => 'OpenVPN op ROOD',
-'ovpn routes push' => 'Routes (een per regel):',
+'ovpn port in root range' => 'Een poortnummer hoger dan 1024 is vereist.',
+'ovpn routes push' => 'Routes (een per regel) bijv. 192.168.10.0/255.255.255.0 192.168.20.0/24',
 'ovpn routes push options' => 'Route push opties',
 'ovpn server status' => 'Huidige OpenVPN server status:',
 'ovpn subnet' => 'OpenVPN subnet (bijv. 10.0.10.0/255.255.255.0)',
 'ovpn_processprioVH' => 'Zeer hoog',
 'ovpnstatus log' => 'OVPN-Status-Log',
 'ovpnsys log' => 'OVPN-Systeem-Log',
+'p2p block' => 'P2P netwerken',
+'p2p block save notice' => 'De firewallregels moeten opnieuw geladen worden om uw wijzigingen actief te maken.',
 'package failed to install' => 'Pakket kon niet worden geïnstalleerd.',
 'pagerefresh' => 'Pagina wordt ververst, wacht even a.u.b.',
 'pakfire accept all' => 'Wilt u alle pakketten installeren?',
 'pulse' => 'Puls',
 'pulse dial' => 'Pulskiezen:',
 'qos add subclass' => 'Voeg sub-klasse toe',
+'qos enter bandwidths' => 'U moet uw downstream- en upstream bandbreedte opgeven!',
 'qos graphs' => 'QoS grafieken',
 'qos warning' => 'De regel <strong>moet</strong> worden opgeslagen, anders zal het worden genegeerd!',
 'quick control' => 'Quick controle',
 'reconnect' => 'Opnieuw verbinden',
 'reconnection' => 'Opnieuw verbinding',
 'red' => 'Internet',
+'red1' => 'ROOD',
 'references' => 'Referenties',
 'refresh' => 'Ververs',
 'refresh index page while connected' => 'Ververs de index.cgi pagina terwijl verbonden',
 'smbstop' => 'Stop samba',
 'smtphost' => 'SMTP host',
 'smtpport' => 'SMTP poort',
+'snat new source ip address' => 'Nieuw bron IP adres',
 'snort hits' => 'Totaal aantal inbraakregels geactiveerd voor',
 'snort working' => 'Snort is bezig ... Wacht a.u.b. totdat alle handelingen succesvol zijn afgerond.',
 'socket options' => 'Socket opties',
 'srcprt range overlaps' => 'Bronpoortreeks overlapt met een al gedefinieerde poort.',
 'srcprt within existing' => 'Bronpoort ligt binnen een al gedefinieerde poortreeks.',
 'ssdmz pinholes' => 'DMZ Pinholes',
+'ssh' => 'SSH',
 'ssh access' => 'SSH toegang',
 'ssh access tip' => 'IPFire SSH gebruikt niet de standaard poort 222!',
 'ssh fingerprint' => 'Vingerafdruk',
 'successfully refreshed updates list' => 'Lijst succesvol bijgewerkt.',
 'summaries kept' => 'Bewaar samenvattingen voor',
 'sunday' => 'Zondag',
+'support donation' => 'Steun het IPFire project met uw donatie',
 'swap' => 'Swap',
 'swap usage per' => 'Swap gebruik per',
 'system' => 'Systeem',
 'system graphs' => 'Systeemgrafieken',
+'system has hwrng' => 'Dit systeem heeft een hardware-generator voor willekeurige getallen.',
+'system has rdrand' => 'Dit systeem ondersteunt Intel(R) RDRAND.',
 'system information' => 'Systeeminformatie',
 'system log viewer' => 'Systeem Log Viewer',
 'system logs' => 'Systeem logs',
 'tone' => 'Toon',
 'tone dial' => 'Toonkiezen:',
 'too long 80 char max' => ' is te lang, maximaal 80 tekens toegestaan',
+'tor' => 'Tor',
+'tor 0 = disabled' => '0 = uitgeschakeld',
+'tor accounting' => 'Verbruik',
+'tor accounting bytes' => 'Verkeer (lezen/schrijven)',
+'tor accounting bytes left' => 'resterend',
+'tor accounting interval' => 'Interval (UTC)',
+'tor accounting limit' => 'Verbruikslimiet (MB)',
+'tor accounting period' => 'Verbruik periode',
+'tor accounting period daily' => 'dagelijks',
+'tor accounting period monthly' => 'maandelijks',
+'tor accounting period weekly' => 'weekelijks',
+'tor acls' => 'Toegangscontrole',
+'tor allowed subnets' => 'Toegestane subnetten (een per regel)',
+'tor bandwidth burst' => 'Max. burst',
+'tor bandwidth rate' => 'Max. snelheid',
+'tor bandwidth settings' => 'Bandbreedte instellingen',
+'tor bandwidth unlimited' => 'ongelimiteerd',
+'tor bridge enabled' => 'Inschakelen Tor bridge',
+'tor common settings' => 'Algemene instellingen',
+'tor configuration' => 'Tor Configuratie',
+'tor connected relays' => 'Verbonden relays',
+'tor contact info' => 'Contact Info',
+'tor daemon' => 'Daemon',
+'tor directory port' => 'Directory poort',
+'tor enabled' => 'Inschakelen Tor',
+'tor errmsg invalid accounting limit' => 'Ongeldige verbruikslimiet',
+'tor errmsg invalid directory port' => 'Ongeldige directory poort',
+'tor errmsg invalid ip or mask' => 'Ongeldig IP subnet',
+'tor errmsg invalid node id' => 'Ongeldige node ID',
+'tor errmsg invalid relay address' => 'Ongeldig relay-adres',
+'tor errmsg invalid relay name' => 'Ongeldige relay-nickname',
+'tor errmsg invalid relay port' => 'Ongeldige relay-poort',
+'tor errmsg invalid socks port' => 'Ongeldige SOCKS poort',
+'tor exit country' => 'Land eindpunt',
+'tor exit country any' => 'Ieder land',
+'tor exit nodes' => 'Eindpunt nodes',
+'tor relay address' => 'Relay-adres',
+'tor relay configuration' => 'Tor relay-configuratie',
+'tor relay enabled' => 'Inschakelen Tor Relay',
+'tor relay external address' => 'Relay extern adres',
+'tor relay fingerprint' => 'Relay-fingerprint',
+'tor relay mode' => 'Relay-mode',
+'tor relay mode bridge' => 'Bridge',
+'tor relay mode exit' => 'Eindpunt-Node',
+'tor relay mode private bridge' => 'Private bridge',
+'tor relay mode relay' => 'Relay only',
+'tor relay nickname' => 'Relay nickname',
+'tor relay port' => 'Relay poort',
+'tor service' => 'Tor dienst',
+'tor socks port' => 'SOCKS poort',
+'tor stats' => 'Statistieken',
+'tor traffic limit hard' => 'Verkeerslimiet is bereikt.',
+'tor traffic limit soft' => 'Verkeerslimiet bijna bereikt. Nieuwe verbindigen worden niet meer geaccepteerd.',
+'tor traffic read written' => 'Totaal verkeer (lezen/schrijven)',
+'tor use exit nodes' => 'Gebruik alleen deze eindpunt-nodes (een per regel)',
 'total connection time' => 'Totale verbindingstijd',
 'total hits for log section' => 'Totaal aantal treffers voor logsectie',
 'traffic back' => 'Terug',
 'updxlrtr source' => 'Bron',
 'updxlrtr source checkup' => 'Broncontrole',
 'updxlrtr source checkup schedule' => 'Broncontrole planning',
+'updxlrtr sources' => 'Bronnen',
+'updxlrtr standard view' => 'Standaard beeld',
 'updxlrtr statistics' => 'Statistieken',
 'updxlrtr statistics by source' => 'Statistieken per bron',
 'updxlrtr summary' => 'Samenvatting',
 'updxlrtr update accelerator' => 'Updateversneller',
 'updxlrtr update information' => 'Er is een nieuwere versie beschikbaar voor download. Bezoek <a href="http://update-accelerator.advproxy.net" target="_blank">http://update-accelerator.advproxy.net</a> voor meer informatie.',
 'updxlrtr update notification' => 'Update notificatie!',
+'updxlrtr used by' => 'Gebruikt door',
 'updxlrtr web proxy service required' => 'Web proxy service moet ingeschakeld zijn om de updateversneller te kunnen gebruiken.',
 'updxlrtr week' => 'een week',
 'updxlrtr weekly' => 'wekelijks',
 'updxlrtr year' => 'een jaar',
 'upgrade' => 'upgrade',
+'uplink' => 'Uplink',
 'uplink speed' => 'Uplink snelheid (kbit/sec)',
 'uplink std class' => 'uplink standaardklasse',
 'upload' => 'Upload',
 'upstream password' => 'Upstream wachtwoord:',
 'upstream proxy host:port' => 'Upstream proxy (host:poort)',
 'upstream username' => 'Upstream gebruikersnaam:',
+'uptime' => 'Bedrijfstijd',
 'uptime and users' => 'Bedrijfstijd en gebruikers:',
-'url filter' => 'Inhoudsfilter',
+'uptime load average' => 'Gemiddelde belasting',
+'url filter' => 'URL filter',
 'urlfilter access' => 'Toegang',
 'urlfilter activity detection' => 'Activiteitsdetectie',
 'urlfilter add new time constraint rule' => 'Voeg nieuwe tijdslimietregel toe',
 'urlfilter quota restart message' => 'Noot: de tellers worden gereset voor alle gebruikers als het URL-filter wordt herstart',
 'urlfilter quota time error' => 'Ongeldige waarde voor tijdsquotum',
 'urlfilter quota user error' => 'Tenminste een gebruikersnaam is vereist',
+'urlfilter redirect template' => 'Omleidingspagina template',
 'urlfilter redirectpage' => 'Omleiden naar deze URL',
 'urlfilter remove file' => 'Verwijder bestand uit repository',
 'urlfilter renewal' => 'Vernieuwing',
 'users department' => 'Gebruikersafdeling',
 'users email' => 'E-mailadres gebruiker',
 'users fullname or system hostname' => 'Volledige naam gebruiker of systeemnaam',
-'valid root certificate already exists' => 'Een geldig root certificaat bestaat al.',
+'valid root certificate already exists' => 'Er bestaat al een geldig root certificaat.',
 'valid till' => 'Geldig tot',
 'vci number' => 'VCI nummer:',
 'view log' => 'bekijk log',
 'wireless config added' => 'Draadloze configuratie toegevoegd',
 'wireless config changed' => ' Draadloze configuratie gewijzigd',
 'wireless configuration' => 'Draadloze configuratie',
-'wlanap access point' => 'Access Point',
+'wlan client' => 'Draadloze client',
+'wlan client advanced settings' => 'Geavanceerde instellingen',
+'wlan client and' => 'en',
+'wlan client bssid' => 'BSSID',
+'wlan client ccmp' => 'CCMP',
+'wlan client configuration' => 'Draadloze client configuratie',
+'wlan client disconnected' => 'Verbroken',
+'wlan client duplicate ssid' => 'Bestaande SSID',
+'wlan client edit entry' => 'Wijzig draadloze client configuratie',
+'wlan client encryption' => 'Encryptie',
+'wlan client encryption none' => 'Geen',
+'wlan client encryption wep' => 'WEP',
+'wlan client encryption wpa' => 'WPA',
+'wlan client encryption wpa2' => 'WPA2',
+'wlan client group cipher' => 'Group cipher',
+'wlan client group key algorithm' => 'GKA',
+'wlan client invalid key length' => 'Ongeldige sleutellengte.',
+'wlan client new entry' => 'Maak nieuwe draadloze client configuratie',
+'wlan client new network' => 'Nieuw netwerk',
+'wlan client pairwise cipher' => 'Paargebonden cipher',
+'wlan client pairwise key algorithm' => 'PKA',
+'wlan client pairwise key group key' => 'Paargebonden sleutel/groep sleutel',
+'wlan client psk' => 'Pre-shared sleutel',
+'wlan client ssid' => 'SSID',
+'wlan client tkip' => 'TKIP',
+'wlan client wpa mode' => 'WPA mode',
+'wlan client wpa mode all' => 'Auto',
+'wlan client wpa mode ccmp ccmp' => 'CCMP-CCMP',
+'wlan client wpa mode ccmp tkip' => 'CCMP-TKIP',
+'wlan client wpa mode tkip tkip' => 'TKIP-TKIP',
+'wlan clients' => 'Draadloze clients',
+'wlanap access point' => 'Toegangspunt (AP)',
 'wlanap channel' => 'Kanaal',
 'wlanap country' => 'Landcode',
 'wlanap debugging' => 'Debugging',
index aa0fa2f0179667be192d3cacb0f90e6795d55318..cd43fc554c87962d2fa9cc29cb8761b7e3b2de04 100644 (file)
@@ -588,9 +588,9 @@ char *nl_tr[] = {
 /* TR_DHCP_FORCE_MTU */
 "Forceer DHCP mtu:",
 /* TR_IDENTIFY */
-"Identify",
+"Identificeer",
 /* TR_IDENTIFY_SHOULD_BLINK */
-"Selected port should blink now ...",
+"Geselecteerde poort zou nu moeten knipperen ...",
 /* TR_IDENTIFY_NOT_SUPPORTED */
-"Function is not supported by this port.",
+"Functie wordt niet ondersteund door deze poort.",
 };
index 80da6d63f2686e62926ac53bdb6e9ccb4210a49f..103e5262e3616c1d1526ee83dd8208152f2af304 100644 (file)
@@ -16,8 +16,8 @@
 'ConnSched change profile title' => 'Zmień na profil:',
 'ConnSched days' => 'Dni:',
 'ConnSched down' => 'Niżej',
-'ConnSched ipsecstart' => '(Re)start IPSec',
-'ConnSched ipsecstop' => 'Zatrzymanie IPSec',
+'ConnSched ipsecstart' => '(Re)start IPsec',
+'ConnSched ipsecstop' => 'Zatrzymanie IPsec',
 'ConnSched reconnect' => 'Ponowne połączenie',
 'ConnSched scheduled actions' => 'Zaplanowane zadania',
 'ConnSched scheduler' => 'Harmonogram',
@@ -92,7 +92,6 @@
 'admin user password has been changed' => 'Hasło administratora zostało zmienione.',
 'admin users' => 'Użytkownik prawami superużytkownika',
 'administrator user password' => 'Hasło administratora:',
-'adsl settings' => 'Ustawienia ADSL',
 'advanced' => 'Zaawansowane',
 'advanced server' => 'Zaawansowane ustawienia serwera',
 'advproxy AUTH always required' => 'Wymagaj autoryzacji dla adresów źródłowych bez ograniczeń',
 'are you sure' => 'Jesteś pewien?',
 'arp table entries' => 'Wpisy tabeli ARP:',
 'artist' => 'Artysta',
+'atm settings' => 'Ustawienia ATM',
 'attemps' => 'Prób',
 'august' => 'Sierpień',
 'authentication' => 'Uwierzytelnianie:',
index c1729b8a75df7e7242e2976e241a571e2f0c34e6..2b680b0665b0c2eae02ac8b6abe5ff6e602aafff 100644 (file)
@@ -15,8 +15,8 @@
 'ConnSched change profile title' => 'Сменить профиль:',
 'ConnSched days' => 'Дни:',
 'ConnSched down' => 'Down',
-'ConnSched ipsecstart' => 'IPSec (пере)запустить',
-'ConnSched ipsecstop' => 'IPSec остановить',
+'ConnSched ipsecstart' => 'IPsec (пере)запустить',
+'ConnSched ipsecstop' => 'IPsec остановить',
 'ConnSched reconnect' => 'Переподключить',
 'ConnSched scheduled actions' => 'Действия по расписанию',
 'ConnSched scheduler' => 'Расписание',
@@ -90,7 +90,6 @@
 'admin user password has been changed' => 'Пароль пользователя Admin был изменён.',
 'admin users' => 'Пользователь с правами суперадминистратора',
 'administrator user password' => 'Пароль пользователя Admin:',
-'adsl settings' => 'Настройки ADSL',
 'advanced' => 'Дополнительно',
 'advanced server' => 'Дополнительные настройки сервера',
 'advproxy AUTH always required' => 'Требовать аутентификацию у незарегистрированных адресов',
 'are you sure' => 'Вы уверены?',
 'arp table entries' => 'Записи ARP-таблицы:',
 'artist' => 'Artist',
+'atm settings' => 'Настройки ATM',
 'attemps' => 'Попытки',
 'august' => 'Август',
 'authentication' => 'Аутентификация:',
index 445357567c1501e89b0b966f15f65bee15f9f156..9eb5a4325288be355b55741d0c2762be7d45392c 100644 (file)
 'ConnSched add action' => 'Eylem ekle',
 'ConnSched change profile title' => 'Profili değitirin:',
 'ConnSched days' => 'Günler:',
+'ConnSched dial' => 'Bağlan',
 'ConnSched down' => 'Aşağı',
-'ConnSched ipsecstart' => 'IPSec yeniden başlat',
-'ConnSched ipsecstop' => 'IPSec durudur',
+'ConnSched hangup' => 'Bağlantıyı kes',
+'ConnSched ipsecstart' => 'IPsec yeniden başlat',
+'ConnSched ipsecstop' => 'IPsec durudur',
+'ConnSched reboot' => 'Yeniden başlat',
 'ConnSched reconnect' => 'Yeniden bağlan',
 'ConnSched scheduled actions' => 'Planlanmış eylemler',
 'ConnSched scheduler' => 'Zamanlayıcı',
 'ConnSched select profile' => 'Profil seçin',
+'ConnSched shutdown' => 'Kapat',
 'ConnSched time' => 'Zaman:',
 'ConnSched up' => 'Yukarı',
 'ConnSched weekdays' => 'Haftanın günleri:',
@@ -67,9 +71,9 @@
 'abort' => 'durdur',
 'access allowed' => 'Erişimine izin ver:',
 'access refused with this oinkcode' => 'Erişim bu Oink Kodunu reddetti',
-'accounting' => 'Hesaplama',
-'accounting user nonpdc' => 'Hesaplama - Hiçbir PDC Yöntemi',
-'accounting user pdc' => 'Hesaplama - PDC Yöntemi',
+'accounting' => 'Hesap oluşturma',
+'accounting user nonpdc' => 'Hesap oluşturma - PDC yöntemi olmadan',
+'accounting user pdc' => 'Hesap oluşturma - PDC yöntemi',
 'action' => 'Eylem',
 'activate' => 'Aktif',
 'activate user' => 'Aktif kullanıcı',
@@ -95,7 +99,6 @@
 'admin user password has been changed' => 'Yönetici kullanıcı şifresi değiştirildi.',
 'admin users' => 'Yetkili kullanıcı hakları ile kullanıcı',
 'administrator user password' => 'Admin kullanıcı parolası:',
-'adsl settings' => 'ADSL ayarları',
 'advanced' => 'Gelişmiş',
 'advanced server' => 'Gelişmiş Sunucu Seçenekleri',
 'advproxy AUTH always required' => 'Sınırsız kaynak adresleri için kimlik doğrulaması iste',
 'are you sure' => 'Emin misiniz?',
 'arp table entries' => 'ARP tablosu girdileri:',
 'artist' => 'Sanatçı',
+'atm device' => 'Aygıt:',
+'atm settings' => 'ATM ayarları',
 'attemps' => 'Girişim',
 'attention' => 'DİKKAT',
 'august' => 'Ağustos',
 'ccd err iroute' => 'Ağ adresi için geçersiz yol.',
 'ccd err irouteexist' => 'Bu yol zaten kullanılıyor.',
 'ccd err isipsecnet' => 'Verilen ağ adresi zaten bir IPsec ağ tarafından kullanılıyor.',
-'ccd err isipsecrw' => 'Verilan ağ adresi zaten IPSec rw ağı tarafından kullanılıyor.',
+'ccd err isipsecrw' => 'Verilan ağ adresi zaten IPsec rw ağı tarafından kullanılıyor.',
 'ccd err isovpnn2n' => 'Bu alt ağ adresi zaten OpenVPN ağdan ağa bağlantısı için kullanılıyor.',
 'ccd err isovpnnet' => 'Bu adres zaten OpenVPN Sunucusu için kullanılan alt ağ adresidir.',
 'ccd err issubnet' => 'Bu adres zaten kullanımda olan bir alt ağ adresidir.',
 'ccd hint' => 'Bu sayfadan RoadWarrior istemcilerine sabit bir IP adresi alabilir ve statik ağları tanımlayabilirsiniz.',
 'ccd invalid' => 'Geçersiz.',
 'ccd iroute' => 'IPFire istemcilerinin sitesinden bu ağlara eriş',
-'ccd iroute2' => 'İstemcilerin IPFire sitesinden bu ağlara eriş',
+'ccd iroute2' => 'İstemciler IPFire sitesinden bu ağlara erişsin',
 'ccd iroutehint' => 'Dikkat! Bu ayarları değiştirirseniz, değişikliklerin etkili olduğu OpenVPN sunucusunu yeniden başlatmanız gerekir!',
 'ccd modify' => 'Ağı değiştir',
 'ccd name' => 'Ad',
 'clenabled' => 'Yerel ağa zaman sağla',
 'click to disable' => 'Aktif (pasifleştirmek için tıklayın)',
 'click to enable' => 'Pasif (aktifleştirmek için tıklayın)',
-'client' => 'İş İstasyonu Adı',
+'client' => 'İş istasyonun adı',
 'clock has not been synchronized' => 'Saat eşitlenemedi',
 'clock last synchronized at' => 'Saatin son olarak eşitlendiği zaman:',
 'comment' => 'Açıklama:',
 'could not open installed updates file' => 'Yüklü güncelleştirmeler dosya açılamadı',
 'could not open update information file' => 'Güncelleştirme bilgileri dosyası açılamadı. Güncelleme dosyası bozuk.',
 'could not retrieve common name from certificate' => 'Sertifikadan ortak ad alınamadı.',
+'count' => 'Say',
 'countries' => 'Ülkeler',
 'country' => 'Ülke',
 'country codes and flags' => 'Ülke kodları ve bayrakları:',
 'ddns minimize updates' => 'Güncellemeleri azalt: Güncellemelerden önce, sunucu adı \'[host.]domain\' için dns IP adresini KIRMIZI IP ile karşılaştır.',
 'ddns noip prefix' => 'Grup yönteminde ip-yok seçeneğini kullanmak için ana bilgisayar adı öneki: <b>%</b>',
 'deactivate' => 'Devre dışı',
-'deactivate user' => 'kullanıcı devre dışı',
+'deactivate user' => 'Kullanıcı devre dışı',
 'dead peer detection' => 'Sonlanmış Eş Algılama',
 'debugme' => 'Henüz uygulanmadı',
 'december' => 'Aralık',
 'firewall logs' => 'Güvenlik Duvarı Günlükleri',
 'firewall logs ip' => 'Gd-Günlük Grafikleri (IP)',
 'firewall logs port' => 'Gd-Günlük Grafikleri (Port)',
-'firewall rules' => 'Güvenlik duvarı kuralları',
+'firewall rules' => 'Güvenlik Duvarı Kuralları',
 'firewallhits' => 'güvenlik duvarı kaydı',
 'firmware' => 'Yazılım',
 'firmware upload' => 'Yazılım/Sürücü Yükle',
 'fwdfw log' => 'Günlük',
 'fwdfw log rule' => 'Günlük kuralı',
 'fwdfw man port' => 'Bağlantı noktası:',
+'fwdfw many' => 'Çok',
 'fwdfw menu' => 'Güvenlik Duvarı Kuralları',
 'fwdfw movedown' => 'Aşağı taşı',
 'fwdfw moveup' => 'Yukarı taşı',
 'fwdfw wd_tue' => 'Sal',
 'fwdfw wd_wed' => 'Çar',
 'fwdfw xt access' => 'Kayıt',
+'fwhost Custom Host' => 'Ana bilgisayar',
+'fwhost Custom Network' => 'Ağ',
+'fwhost IpSec Host' => 'IPsec ana bilgisayarı',
+'fwhost IpSec Network' => 'IPsec ağı',
+'fwhost OpenVPN N-2-N' => 'Ağdan ağa OpenVPN',
+'fwhost OpenVPN static host' => 'OpenVPN statik ana bilgisayar',
+'fwhost OpenVPN static network' => 'OpenVPN statik ağ',
+'fwhost Standard Network' => 'Standart ağ',
 'fwhost addgrp' => 'Yeni ağ/ana bilgisayar grubu ekle:',
 'fwhost addgrpname' => 'Grup adı:',
 'fwhost addhost' => 'Yeni bir ana bilgisayar ekle:',
 'inactive' => 'Pasif',
 'include logfiles' => 'Günlük dosyaları dahil',
 'incoming' => 'gelen',
+'incoming firewall access' => 'Gelen güvenlik duvarı bağlantısı',
 'incoming traffic in bytes per second' => 'gelen trafik',
 'incorrect password' => 'Yanlış parola',
 'info' => 'Bilgi',
 'load printer' => 'Yazıcı Yükle',
 'loaded modules' => 'Yüklü modüller:',
 'local hard disk' => 'Sabit disk',
-'local master' => 'Yerel Yönetici',
+'local master' => 'Yerel yönetici',
 'local ntp server specified but not enabled' => 'Belirtilen yerel NTP sunucusu aktif değil',
 'local subnet' => 'Yerel Alt Ağ:',
 'local subnet is invalid' => 'Geçersiz yerel alt ağ.',
 'monthly volume start day' => 'Aylık dönemin ilk günü',
 'monthly volume start day short' => 'İlk gün',
 'months' => 'ay',
-'more' => 'daha',
+'more' => 'Daha fazla',
 'most preferred' => 'En çok tercih edilen',
 'mount' => 'Bağla',
 'mounted on' => 'Bağlı',
 'out' => 'Dışarı',
 'outgoing' => 'giden',
 'outgoing firewall' => 'Giden güvenlik duvarı',
+'outgoing firewall access' => 'giden güvenlik duvarı bağlantısı',
 'outgoing firewall add ip group' => 'IP Adres Grubu Ekle',
 'outgoing firewall add mac group' => 'MAC Adres Grubu Ekle',
 'outgoing firewall edit ip group' => 'IP Adres Grubunu Düzenle',
 'ovpn mgmt in root range' => 'Bağlantı noktası numarası 1024 ya da daha yüksek bir numara olmalıdır.',
 'ovpn mtu-disc' => 'MTU algılama',
 'ovpn mtu-disc and mtu not 1500' => 'MTU algılama 1500 MTU olmasını gerektirir.',
-'ovpn mtu-disc maybe' => 'İsteğe Bağlı',
+'ovpn mtu-disc maybe' => 'İsteğe bağlı',
 'ovpn mtu-disc no' => 'Asla',
 'ovpn mtu-disc off' => 'Devre dışı',
 'ovpn mtu-disc with mssfix or fragment' => 'MTU algılama mssfix veya parçası ile kullanılamaz.',
 'passwords do not match' => 'Parolalar eşleşmiyor.',
 'passwords must be at least 6 characters in length' => 'Parolalar en az 6 karakter olmalıdır',
 'path to directory' => 'paylaşım yolu',
-'pc' => 'İş İstasyonu',
+'pc' => 'İş istasyonu',
 'pc add' => 'İş istasyonu ekle',
 'pdc options' => 'PDC seçenekleri',
 'percentage' => 'Yüzde',
 'pppoe settings' => 'Ek PPPoE ayarları:',
 'pptp settings' => 'Ek PPTP ayarları:',
 'pre-shared key is too short' => 'Ön paylaşımlı anahtar çok kısa.',
-'prefered master' => 'Tercih Edilen Yönetici',
+'prefered master' => 'Tercih edilen yönetici',
 'present' => 'Mevcut',
 'prev' => 'önceki',
 'primary dns' => 'Birincil DNS:',
 'quick control' => 'Hızlı Kontrol',
 'quick playlist' => 'Hızlı Oynatıcı',
 'ram' => 'RAM',
+'random number generator daemon' => 'Rastgele sayı oluşturucu programı',
 'read bytes' => 'okunan bayt',
 'read list' => 'salt okunur bilgisayarlar ile liste',
 'real address' => 'Gerçek Adres',
 'refresh update list' => 'Güncelleme listesini yenile',
 'registered user rules' => 'Kayıtlı kullanıcılar için kaynak güvenlik duvarı VRT kuralları',
 'released' => 'Çıkış',
-'reload' => 'yeniden yükle',
+'reload' => 'Yeniden yükle',
 'remark' => 'Açıklama',
 'remark title' => 'Açıklama:',
 'remote access' => 'Uzak erişim',
 'restore' => 'Geri Yükle',
 'restore defaults' => 'Varsayılanı Geri Yükle',
 'restore hardware settings' => 'Donanım ayarlarını geri yükle',
-'restore settings' => 'Ayarları Sıfırla',
+'restore settings' => 'Ayarları sıfırla',
 'reverse sort' => 'Ters kronolojik sıralama',
 'root' => 'Root',
 'root certificate' => 'Root sertifika',
 'samba status' => 'Samba durumu',
 'saturday' => 'Cumartesi',
 'save' => 'Kaydet',
-'save config' => 'ayarları kaydet',
+'save config' => 'Ayarları kaydet',
 'save error' => 'Yapılandırma arşiv dosyası kaydedilemiyor.',
 'save settings' => 'Ayarları kaydet',
 'save-adv-options' => 'Gelişmiş Seçenekleri Kaydet',
 'servicename' => 'Hizmet Adı',
 'services' => 'Hizmetler',
 'services settings' => 'Güvenlik Duvarı - Hizmet Ayarları',
-'set' => 'ayar',
+'set' => 'Ayarlı',
 'set time now' => 'Zamanı Şimdi Ayarla',
 'set time now help' => 'Herhangi bir zamanda eşitleme etkinliği sırasında (hatta yinelenen bir program kullanılırken) <i>Zamanı şimdi ayarla</i> düğmesine basın. Bir eşitleme olmadan önce beş dakika veya daha fazla beklemek zorunda olduğunuzu unutmayın.',
 'settings' => 'Ayarlar',
 'standard login script' => 'Standart oturum açma komut dosyası',
 'start' => 'Başlat',
 'start address' => 'Başlangıç adresi:',
-'start ovpn server' => 'OpenVPN Sunucu Başlangıcı',
+'start ovpn server' => 'OpenVPN Sunucusunu Başlat',
 'state or province' => 'İlçe',
 'static ip' => 'Statik IP',
 'static routes' => 'Statik Yollar',
 'unix charset' => 'UNIX karakterleri',
 'unix group' => ' UNIX kullanıcı grubu',
 'unix password sync' => 'Unix Parola Eşitleme',
-'unix shell' => 'UNIX Kabuğu',
+'unix shell' => 'UNIX kabuğu',
 'unknown' => 'BİLİNMEYEN',
 'unnamed' => 'Adsız',
 'update' => 'Güncelle',
 'uplink speed' => 'Yükleme hızı (kbit/san)',
 'uplink std class' => 'Standart yükleme hızı sınıf',
 'upload' => 'Yükle',
-'upload a certificate' => 'Sertifika yükle:',
+'upload a certificate' => 'Sertifika yükle:',
 'upload a certificate request' => 'Sertifika isteği yükle:',
 'upload ca certificate' => 'CA Sertifikası Yükle',
 'upload fcdsl.o' => 'KALDIRILACAK',
index 3131dd14faa1e5a3ae5a2d866654b1781b11c480..814949a84e62a9b77618d9b3c4ad1d54e334d11f 100644 (file)
@@ -54,7 +54,7 @@ char *tr_tr[] = {
 /* TR_JOURNAL_EXT3 */
 "Ext3 için günlük oluşturuluyor...",
 /* TR_CHOOSE_NETCARD */
-"Aşağıdaki ara birim için bir ağ kartı seçin - %s.",
+"Aşağıdan şu ara birim için bir ağ kartı seçin - %s",
 /* TR_NETCARDMENU2 */
 "Genişletilmiş Ağ Listesi",
 /* TR_ERROR_INTERFACES */
@@ -132,7 +132,7 @@ char *tr_tr[] = {
 /* TR_DNS_AND_GATEWAY_SETTINGS */
 "DNS ve Ağ Geçidi ayarları",
 /* TR_DNS_AND_GATEWAY_SETTINGS_LONG */
-"DNS ve ağ geçidi bilgilerini girin. Bu ayarlar sadece KIRMIZI arabirim adres ayarlarında Sabit seçenği seçilmişse kullanılır. Eğer KIRMIZI arabirim adres ayarlarında DHCP seçeneğini seçtiyseniz bu alanı boş bırakabilirsiniz.",
+"DNS ve ağ geçidi bilgilerini girin. Bu ayarlar sadece KIRMIZI ara birim adres ayarlarında Statik seçenği seçilmişse kullanılır. Eğer KIRMIZI ara birim adres ayarlarında DHCP seçeneğini seçtiyseniz bu alanı boş bırakabilirsiniz.",
 /* TR_DNS_GATEWAY_WITH_GREEN */
 "Yapılandırmanız KIRMIZI ara birim için ethernet adaptörünü kullanamaz. DNS ve Çevirmeli ağ kullanıcıları için ağ geçidi bilgisi çevirmeli ağda otomatik olarak yapılandırılır.",
 /* TR_DOMAINNAME */
@@ -164,7 +164,7 @@ char *tr_tr[] = {
 /* TR_ENTER_ADDITIONAL_MODULE_PARAMS */
 "Bazı ISDN kartları (özellikle ISA olanlar) IRQ ve GÇ adres bilgilerini ayarlamak için ek modül parametrelerine ihtiyaç duyar.Böyle bir ISDN kartınız varsa burada bu ek parametreleri girin. Örneğin: \"io = 0x280 irq = 9 \". Bunlar kart algılama sırasında kullanılacaktır.",
 /* TR_ENTER_ADMIN_PASSWORD */
-"%s 'admin' kullanıcı parolasını giriniz. Bu, %s web yönetimi sayfalarının kayıtlarına erişebilen kullanıcıdır.",
+"%s 'admin' kullanıcı parolasını girin. Bu, %s web yönetimi sayfalarının kayıtlarına erişebilen kullanıcıdır.",
 /* TR_ENTER_DOMAINNAME */
 "Alan adını girin",
 /* TR_ENTER_HOSTNAME */
@@ -228,7 +228,7 @@ char *tr_tr[] = {
 /* TR_INTERFACE_FAILED_TO_COME_UP */
 "Ara birim yükseltmesi başarısız oldu.",
 /* TR_INVALID_FIELDS */
-"Aşağıdaki alan geçersizdir:\n\n",
+"Aşağıdaki alan geçersiz:\n\n",
 /* TR_INVALID_IO */
 "Girilen GÇ bağlantı noktası detayları geçersiz. ",
 /* TR_INVALID_IRQ */
@@ -354,7 +354,7 @@ char *tr_tr[] = {
 /* TR_PHONENUMBER_CANNOT_BE_EMPTY */
 "Telefon numarası boş olamaz.",
 /* TR_PREPARE_HARDDISK */
-"Sabit disk kurulum programı /dev/sda üzerindeki %s sabit diski hazırlayacak. İlk olarak diskiniz bölümlendirilir ve daha sonra bu bölüme dosya sistemleri oluşturulur.\n\nDİSKTEKİ TÜM VERİLER SİLİNECEKTİR. Kabul ediyor musunuz?",
+"Sabit disk kurulum programı %s üzerindeki sabit diski hazırlayacak. İlk olarak diskiniz bölümlendirilir ve daha sonra bu bölüme dosya sistemleri oluşturulur.\n\nDİSKTEKİ TÜM VERİLER SİLİNECEKTİR. Kabul ediyor musunuz?",
 /* TR_PRESS_OK_TO_REBOOT */
 "Yeniden Başlat",
 /* TR_PRIMARY_DNS */
@@ -428,7 +428,7 @@ char *tr_tr[] = {
 /* TR_SETTING_SETUP_PASSWORD */
 "KALDIRILACAK",
 /* TR_SETUP_FINISHED */
-"Kurulum tamamlandı. Tamam tuşuna basın.",
+"Kurulum tamamlandı. Tamam seçneği ile ilerleyin.",
 /* TR_SETUP_NOT_COMPLETE */
 "Başlangıç kurulumu tamamlanamadı. Şimdi kurulumu tekrar çalıştırarak ayarlarınızın düzgün yapılmış olduğundan emin olun.",
 /* TR_SETUP_PASSWORD */
@@ -444,7 +444,7 @@ char *tr_tr[] = {
 /* TR_START_ADDRESS_CR */
 "Başlangıç adresi\n",
 /* TR_STATIC */
-"Sabit",
+"Statik",
 /* TR_SUGGEST_IO */
 "(öneri %x)",
 /* TR_SUGGEST_IRQ */
@@ -546,7 +546,7 @@ char *tr_tr[] = {
 /* TR_WARNING */
 "UYARI",
 /* TR_WARNING_LONG */
-"Bu IP adresini değiştiriseniz %s makinesi ile uzak oturum bağlantısı kopar ve yeniden IP adresi girmeniz gerekir. Bu riskli bir işlemdir. Bu işlem sırasında bir şeyler ters giderse düzeltmek için makineye fiziksel erişiminiz varsa denemelisiniz.",
+"Bu IP adresini değiştiriseniz %s makinesi ile uzak oturum bağlantısı kopar ve yeniden IP adresi girmeniz gerekir. Bu riskli bir işlemdir. Bu işlem sırasında bir şeyler ters giderse düzeltmek için makineye fiziksel erişiminiz olmalıdır. Makineye fiziksel erişiminiz varsa bu işlemi gerçekleştirin.",
 /* TR_WELCOME */
 "%s kurulum programına hoş geldiniz. Sonraki ekranların herhangi birinde İptal seçeneğini seçtiğinizde bilgisayar yeniden başlatılacaktır.",
 /* TR_YOUR_CONFIGURATION_IS_SINGLE_GREEN_ALREADY_HAS_DRIVER */
@@ -588,9 +588,9 @@ char *tr_tr[] = {
 /* TR_DHCP_FORCE_MTU */
 "DHCP mtu zorla:",
 /* TR_IDENTIFY */
-"Identify",
+"Belirle",
 /* TR_IDENTIFY_SHOULD_BLINK */
-"Selected port should blink now ...",
+"Seçilen bağlantı noktasının şimdi yanıp sönmesi gerekir...",
 /* TR_IDENTIFY_NOT_SUPPORTED */
-"Function is not supported by this port.",
+"İşlev bu bağlantı noktası tarafından desteklenmiyor.",
 };
index 88e147cfb0e217fbac4a7a290598b9b02f5110c0..17064fba09905906bf13ee0db24e084081a84774 100644 (file)
--- a/lfs/GeoIP
+++ b/lfs/GeoIP
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2014  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -25,7 +25,7 @@
 include Config
 
 VER        = 1.17
-DATVER     = 01102013
+DATVER     = 06052014
 
 THISAPP    = Geo-IP-PurePerl-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -43,7 +43,7 @@ $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 GeoIP.dat-$(DATVER).gz = $(DL_FROM)/GeoIP.dat-$(DATVER).gz
 
 $(DL_FILE)_MD5 = 42a6b9d4dd2563a20c8998556216e1de
-GeoIP.dat-$(DATVER).gz_MD5 = 4aecef560aa6dacfe7e59dad8a12914b
+GeoIP.dat-$(DATVER).gz_MD5 = aba5fc86202337c53a33bbc47d2083d0
 
 install : $(TARGET)
 
index 4a9a5a2bae3f9002d167881853dbcb4b425f6c88..8cb849b5cd2e0c1256db52232d1f4433aa6f89d9 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.98.1
+VER        = 0.98.3
 
 THISAPP    = clamav-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = clamav
-PAK_VER    = 24
+PAK_VER    = 25
 
 DEPS       = ""
 
@@ -48,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = b1ec7b19dea8385954515ef1d63576d8
+$(DL_FILE)_MD5 = b649d35ee85d4d6075a98173dd255c17
 
 install : $(TARGET)
 
@@ -96,6 +96,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        # Disable PaX mprotect for clamd and freshclam
        paxctl -cm /usr/sbin/clamd
+       paxctl -cm /usr/bin/clamscan
        paxctl -cm /usr/bin/freshclam
 
        @rm -rf $(DIR_APP)
diff --git a/lfs/daq b/lfs/daq
index e6fd8fbdf462885cddb7a8ce0d119880ca84f873..fa8f2a89c5e7dbd228b5fb3089dd9f1ff81123fc 100644 (file)
--- a/lfs/daq
+++ b/lfs/daq
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.0.1
+VER        = 2.0.2
 
 THISAPP    = daq-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 044aa3663d44580d005293eeb8ccf175
+$(DL_FILE)_MD5 = 865bf9b750a2a2ca632591a3c70b0ea0
 
 install : $(TARGET)
 
index f1ee58a13c64488ff7099cbcff74b30bdecc4669..0c36706569199978645aff06c6eeb397c3586711 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.1.9
+VER        = 2.1.10
 
 THISAPP    = fireinfo-v$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a4dbb3a4111f263b5059b2f76b14b32c
+$(DL_FILE)_MD5 = cc7838cda22d7d4e9bb177aa1dc6f25a
 
 install : $(TARGET)
 
@@ -71,8 +71,6 @@ $(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/fireinfo-0001-Exclude-some-more-invalid-patterns.patch
-
        cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
index f74c7e1e4eaf21bc0e162754a04a0ed92992405c..4e28e4cd37746eb01d4d1211a5ff1ece6ea7acd4 100644 (file)
@@ -65,9 +65,9 @@ else
 endif
 
 # /boot:  64MB - OFFSET
-# /    : 600MB
+# /    : 700MB
 S_BOOT := $(shell echo $$(( 131072 - $(S_OFFSET) )))
-S_ROOT := 1228800
+S_ROOT := 1433600
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) && mkdir -p $(MNThdd)
index cc169568043884f5168023fa59a9900efb707e6b..42da9bc7b3067b61cc73a37e5d287b660bb57c53 100644 (file)
@@ -64,11 +64,25 @@ $(TARGET) :
 
        -cd / && cpio -d -p /install/initrd < /tmp/ROOTFILES
 
-       # Copy hid and network modules
+       # Copy hid and network modules (and deps)
        cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/hid \
                /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
        cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/net \
                /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
+       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/pcmcia \
+               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
+       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/ssb \
+               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
+       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/uio \
+               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
+       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/ptp \
+               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
+       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/dca \
+               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
+       cp -aRf /lib/modules/$(KVER)-ipfire/kernel/drivers/pps \
+               /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/
+       # Remove wireless modules
+       rm -rf /install/initrd/lib/modules/$(KVER)-ipfire/kernel/drivers/net/wireless
 
        cd /install/initrd/etc && rm -f fstab
        cp -aRf $(DIR_SRC)/config/install/* /install/initrd/etc/
@@ -93,6 +107,14 @@ $(TARGET) :
        cp -f /etc/nsswitch.conf /install/initrd/etc/
        cp -f $(DIR_SRC)/config/initrd/dhcpc/* /install/initrd/var/ipfire/dhcpc/dhcpcd-hooks/
 
+       # Install needed locales.
+       -mkdir -pv /install/initrd/usr/lib/locale
+       for lang in $(DIR_SRC)/langs/*; do \
+               for path in /usr/lib/locale/$${lang##*/}*; do \
+                       [ -d "$${path}" ] && cp -lrvf "$${path}" /install/initrd/usr/lib/locale/; \
+               done; \
+       done
+
        cd /install/initrd && find . | cpio -o -H newc | lzma > /install/images/initrd
        cd /install/initrd && find ./ -ls > $(DIR_INFO)/_build.initrd.log
 
diff --git a/lfs/libsigc++ b/lfs/libsigc++
deleted file mode 100644 (file)
index 0d90f4c..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 2.0.18
-
-THISAPP    = libsigc++-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = ddebf5aafc8525d10366a8724abc9f28
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsigc++-gcc43.patch
-       cd $(DIR_APP) && ./configure --prefix=/usr
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index 948d056a68d3ed0da7ab0d2661970db765837a26..2bf32d39b8cf9f521cf0955c4495d108ebfaaf3c 100644 (file)
--- a/lfs/linux
+++ b/lfs/linux
 
 include Config
 
-VER        = 3.10.37
+VER        = 3.10.39
 
-RPI_PATCHES = linux-3.10.34-grsec-dea8280
-GRS_PATCHES = grsecurity-2.9.1-3.10.37-ipfire1.patch.xz
+RPI_PATCHES = linux-3.10.38-grsec-1b49b45
+GRS_PATCHES = grsecurity-2.9.1-3.10.39-ipfire1.patch.xz
 
 THISAPP    = linux-$(VER)
 DL_FILE    = linux-$(VER).tar.xz
@@ -36,7 +36,7 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 CFLAGS     =
 CXXFLAGS   =
 
-PAK_VER    = 42
+PAK_VER    = 44
 DEPS      = ""
 
 VERSUFIX=ipfire$(KCFG)
@@ -74,9 +74,9 @@ $(DL_FILE)                            = $(URL_IPFIRE)/$(DL_FILE)
 rpi-patches-$(RPI_PATCHES).patch.xz    = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz
 $(GRS_PATCHES)                         = $(URL_IPFIRE)/$(GRS_PATCHES)
 
-$(DL_FILE)_MD5                         = a08a10ffc31b07d9422af1cd2baa3274
-rpi-patches-$(RPI_PATCHES).patch.xz_MD5        = 522683db031f7033b1b5dfe1b1f30e67
-$(GRS_PATCHES)_MD5                     = 7b0f44571974217d79dbcdf5d7e33976
+$(DL_FILE)_MD5                         = 74db7cc558a1a72ebf5044d286e2bc47
+rpi-patches-$(RPI_PATCHES).patch.xz_MD5        = a7408e8bad57b4b2cb677dd5a0bfb7ff
+$(GRS_PATCHES)_MD5                     = 6296b7ec4146544249075249e338ceb3
 
 install : $(TARGET)
 
@@ -137,6 +137,8 @@ endif
        # Wlan Patches
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-drivers-3.8.3-ath_ignore_eeprom_regdomain.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.34-iwlwifi-noibss_only_on_radar_chan.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.37-rt2800usb_add_dlink_dwa137_usbid.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.10.39-add_libertas_uap.patch
 
        # mISDN Patches
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/mISDN_hfc-s_add_id.patch
diff --git a/lfs/mc b/lfs/mc
index 18613498a7630fac1173607502e1332a740e9344..ed799be0640cef1473d0036451d7fabaa8f3297e 100644 (file)
--- a/lfs/mc
+++ b/lfs/mc
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2013  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2014  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.8.9
+VER        = 4.8.12
 
 THISAPP    = mc-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = mc
-PAK_VER    = 8
+PAK_VER    = 9
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 0f8a05f9a9708241541ae177c8e2f209
+$(DL_FILE)_MD5 = 7ecccc03df060cd0ca1414a5a14e6649
 
 install : $(TARGET)
 
diff --git a/lfs/nut b/lfs/nut
index 0a5f84779ea70446263dbb1e8ef0a465677c2a02..c64c5a26b53087f5a06038447c68e519d4b40ff1 100644 (file)
--- a/lfs/nut
+++ b/lfs/nut
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.6.3
+VER        = 2.7.2
 
 THISAPP    = nut-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = nut
-PAK_VER    = 4
+PAK_VER    = 5
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 8db00c21f8bc03add6e14d15f634ec6a
+$(DL_FILE)_MD5 = c3568b42e058cfc385b46d25140dced4
 
 install : $(TARGET)
 
index 053d5819861e21180507d8d793ba2615aeb9b026..8c7c81a4916843702b71031ae9e222fc795db05d 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2013  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2014  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-VER        = 2.3.2
+VER        = 2.3.4
 
 THISAPP    = openvpn-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 06e5f93dbf13f2c19647ca15ffc23ac1
+$(DL_FILE)_MD5 = 9b70be9fb45e407117c3c9b118e4ba22
 
 install : $(TARGET)
 
@@ -69,7 +69,7 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure \
                --prefix=/usr \
                --sysconfdir=/var/ipfire/ovpn \
index 9305f4595239d7c4fc5ea8121f38d3535517e7c9..20e807d18707c2d472574046b55d74fb99b4123e 100644 (file)
--- a/lfs/pound
+++ b/lfs/pound
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.6
+VER        = 2.7c
 
 THISAPP    = Pound-$(VER)
 DL_FILE    = $(THISAPP).tgz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = pound
-PAK_VER    = 5
+PAK_VER    = 6
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 8c913b527332694943c4c67c8f152071
+$(DL_FILE)_MD5 = 56dace6b79c6be1d25b31355269c380a
 
 install : $(TARGET)
 
@@ -77,16 +77,11 @@ $(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 -p4 < $(DIR_SRC)/src/patches/pound-2.6.patch
-       cd $(DIR_APP) && patch -p1 < $(DIR_SRC)/src/patches/Pound-2.6-reneg-ciphers-altnames-nosslv2.patch
-       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc --enable-cert1l
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        install -v -m 644 $(DIR_SRC)/config/backup/includes/pound \
                         /var/ipfire/backup/addons/includes/pound
-       ln -sf ../init.d/pound /etc/rc.d/rc3.d/S60pound
-       ln -sf ../init.d/pound /etc/rc.d/rc0.d/K40pound
-       ln -sf ../init.d/pound /etc/rc.d/rc6.d/K40pound
 
        # Remove temporary file.
        rm -vf /root/.rnd
diff --git a/lfs/ppp b/lfs/ppp
index ba72f4c835f3c9728dbc5695beec7cc4c09d5980..3c60938dcdcd65d6a208cb667af70c71ebf5579f 100644 (file)
--- a/lfs/ppp
+++ b/lfs/ppp
@@ -73,9 +73,14 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && rm -f include/pcap-int.h include/linux/if_pppol2tp.h
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ppp/0003-build-sys-utilize-compiler-flags-handed-to-us-by-rpm.patch
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ppp/0012-pppd-we-don-t-want-to-accidentally-leak-fds.patch
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ppp/0013-everywhere-O_CLOEXEC-harder.patch
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ppp/0014-everywhere-use-SOCK_CLOEXEC-when-creating-socket.patch
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ppp/ppp-2.4.6-increase-max-padi-attempts.patch
        cd $(DIR_APP) && sed -i -e "s+/etc/ppp/connect-errors+/var/log/connect-errors+" pppd/pathnames.h
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
-       cd $(DIR_APP) && make $(MAKETUNING) CC="gcc $(CFLAGS)"
+       cd $(DIR_APP) && make $(MAKETUNING) CC="gcc" RPM_OPT_FLAGS="$(CFLAGS)"
        cd $(DIR_APP) && make install
        cd $(DIR_APP) && make install-etcppp
        touch /var/log/connect-errors
index a7f87616efcecb43bbebb6abce4586d71194a617..6882fcbdc02714a49dbaedcc2997b9bf52140be8 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 18a7921
+VER        = cd50136
 THISAPP    = rpi-firmware-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 07a83d2700fb73aad67154c9e74901f3
+$(DL_FILE)_MD5 = fced022c0e646affae0d5d5543f59054
 
 install : $(TARGET)
 
index 2d5d04a121b596fc8f1853a2a63a56a2d0eef742..45c17a8ad691b70bbe63a62428068c04044009e6 100644 (file)
--- a/lfs/snort
+++ b/lfs/snort
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.9.5.3
+VER        = 2.9.6.1
 
 THISAPP    = snort-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = f99465c0734a6173bfca899dcb72266b
+$(DL_FILE)_MD5 = d7c0f1ddb2e70b70acdaa4664abb5fb0
 
 install : $(TARGET)
 
@@ -70,14 +70,26 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/snort* && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls \
-               --sysconfdir=/etc/snort --target=i586 \
-               --enable-linux-smp-stats --enable-smb-alerts \
-               --enable-gre --enable-mpls --enable-targetbased \
-               --enable-decoder-preprocessor-rules --enable-ppm \
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --disable-nls \
+               --sysconfdir=/etc/snort \
+               --target=i586 \
+               --enable-linux-smp-stats \
+               --enable-smb-alerts \
+               --enable-gre --enable-mpls \
+               --enable-targetbased \
+               --enable-decoder-preprocessor-rules \
+               --enable-ppm \
                --enable-non-ether-decoders \
-               --enable-perfprofiling --enable-zlib --enable-active-response \
-               --enable-normalizer --enable-reload --enable-react --enable-flexresp3
+               --enable-perfprofiling \
+               --enable-zlib \
+               --enable-active-response \
+               --enable-normalizer \
+               --enable-reload \
+               --enable-react \
+               --enable-flexresp3
+
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
        mv /usr/bin/snort /usr/sbin/
index 00dc12a10a01a7b918e5f0c87a8ccf30737014fe..1f1589d0168a671e38716f6514d5910881f8927a 100644 (file)
--- a/lfs/squid
+++ b/lfs/squid
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.4.4
+VER        = 3.4.5
 
 THISAPP    = squid-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = dc2bcb967fc6b15bbbc6b961010c0c00
+$(DL_FILE)_MD5 = a831efb36cfbaa419f8dc7a43cba72c9
 
 install : $(TARGET)
 
similarity index 87%
rename from lfs/libtorrent
rename to lfs/sslscan
index 7ce3b23963a4709ac00545c1ff9dd5ca12704166..a384db1e4602d91a787ee196b83cb5effa0aba3f 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2009  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2014  Michael Tremer & Christian Schmidt                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-VER        = 0.12.6
+VER        = 1.10.2
 
-THISAPP    = libtorrent-$(VER)
+THISAPP    = sslscan-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-CFLAGS     =
-CXXFLAGS   =
+PROG       = sslscan
+PAK_VER    = 1
+
+DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -42,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 037499ed708aaf72988cee60e5a8d96b
+$(DL_FILE)_MD5 = 41ecff92303cecfd00bf3c7de509af14
 
 install : $(TARGET)
 
@@ -52,6 +54,9 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
+dist: 
+       @$(PAK)
+
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -71,9 +76,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) && ./configure --prefix=/usr --disable-ipv6
-       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && make $(MAKETUNING) CFLAGS="$(CFLAGS)"
+       cd $(DIR_APP) && make install PREFIX=/usr
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index f9f6e78112dd52dd3fb25225a4590741d66db9b7..ba492106eca9df95431c6411a34b8c2af6e7d86d 100644 (file)
@@ -89,6 +89,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                --enable-farp \
                --enable-openssl \
                --enable-xauth-eap \
+               --enable-xauth-noauth \
                --enable-eap-radius \
                --enable-eap-tls \
                --enable-eap-ttls \
similarity index 80%
rename from lfs/rtorrent
rename to lfs/stunnel
index 3ccbb4c2f1944f5aec0dd67e5d76fef087a61e19..f6f27e07592c0eb99e6dae5dd139ba898a2bedea 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2009  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-VER        = 0.8.6
+VER        = 5.01
 
-THISAPP    = rtorrent-$(VER)
+THISAPP    = stunnel-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = rtorrent
-PAK_VER    = 5
-CFLAGS     =
-CXXFLAGS   =
+PROG       = stunnel
+PAK_VER    = 1
 
 DEPS       = ""
 
@@ -46,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = b804c45c01c40312926bcea6b55bb084
+$(DL_FILE)_MD5 = 7b63266b6fa05da696729e245100da65
 
 install : $(TARGET)
 
@@ -79,8 +77,25 @@ $(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) && ./configure --prefix=/usr
-       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --sysconfdir=/etc \
+               --localstatedir=/var
+       cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
+
+       # Create secure directory
+       install -v -m750 -o stunnel -g stunnel -d /var/lib/stunnel/run
+       chown -v stunnel:stunnel /var/lib/stunnel
+
+       # Install default configuration
+       -mkdir -pv /etc/stunnel
+       install -v -m 644 $(DIR_SRC)/config/stunnel/stunnel.conf \
+               /etc/stunnel
+
+       # Install backup include
+       install -v -m 644 $(DIR_SRC)/config/backup/includes/stunnel \
+               /var/ipfire/backup/addons/includes
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index b0cf7d3590a6480d3537032b531bff93278bb6e5..1b719a60d8ab96b74e9afbec4b59564665943e68 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.0.1
+VER        = 2.1.1
 
 THISAPP    = usb-modeswitch-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = e48d4419d0574d342bb183f7465556d0
+$(DL_FILE)_MD5 = 1f0dc900df88254bd1102444cb73efbc
 
 install : $(TARGET)
 
index 95aeac60813977f209fdde2368f197ba6f255d67..b0b8a3707682f9d11b6f07e6014ec055fb9ec873 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 20131113
+VER        = 20140327
 
 THISAPP    = usb-modeswitch-data-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 7b5ac1226b360ddc366c286e62b3c3a4
+$(DL_FILE)_MD5 = bbbc0a8e6a98bde2c6e119b3826658fb
 
 install : $(TARGET)
 
index 8058c8cbe34c85d106ba75e1db109a4474b5dc34..70bf6921ea5ae6ea5487a95db9828a9714ddfb08 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.9
+VER        = 5.13
 
 THISAPP    = watchdog-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = watchdog
-PAK_VER    = 3
+PAK_VER    = 4
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d7cae3c9829f5d9a680764f314234867
+$(DL_FILE)_MD5 = 153455f008f1cf8f65f6ad9586a21ff1
 
 install : $(TARGET)
 
@@ -77,7 +77,7 @@ $(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) && ./configure
+       cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        install -v -m 644 $(DIR_SRC)/config/backup/includes/watchdog \
diff --git a/make.sh b/make.sh
index d280d9c8f77149f448d5a6a6e8b7f763e3e1361f..041f696560b0ff40e2621b65f585a8487df0efe6 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -25,7 +25,7 @@
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
 VERSION="2.15"                                                 # Version number
-CORE="77-rc1"                                                  # Core Level (Filename)
+CORE="78"                                                      # Core Level (Filename)
 PAKFIRE_CORE="77"                                              # Core Level (PAKFIRE)
 GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`                   # Git Branch
 SLOGAN="www.ipfire.org"                                                # Software slogan
@@ -638,9 +638,6 @@ buildipfire() {
   ipfiremake libmpeg2
   ipfiremake cmake
   ipfiremake gnump3d
-  ipfiremake libsigc++
-  ipfiremake libtorrent
-  ipfiremake rtorrent
   ipfiremake rsync
   ipfiremake tcpwrapper
   ipfiremake libevent
@@ -799,6 +796,8 @@ buildipfire() {
   ipfiremake wavemon
   ipfiremake iptraf-ng
   ipfiremake iotop
+  ipfiremake stunnel
+  ipfiremake sslscan
 }
 
 buildinstaller() {
@@ -842,7 +841,8 @@ buildpackages() {
   ipfiremake cdrom
 
   # Check if there is a loop device for building in virtual environments
-  if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then
+  modprobe loop 2>/dev/null
+  if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ] || [ -e "/dev/loop-control" ]); then
        ipfiremake flash-images
   fi
 
index d856c9098d6a0820d9ec671f4f37be7de6f6d1c9..219c7c2ecd1db494a19b3f103a04886d2fe41ab4 100644 (file)
@@ -1,8 +1,8 @@
 #
 #      List of PCI ID's
 #
-#      Version: 2013.10.06
-#      Date:    2013-10-06 03:15:01
+#      Version: 2014.04.30
+#      Date:    2014-04-30 03:15:02
 #
 #      Maintained by Martin Mares <mj@ucw.cz> and other volunteers from the
 #      PCI ID Project at http://pci-ids.ucw.cz/.
        c000  Remote Insight Lights-Out Edition
        f130  NetFlex-3/P ThunderLAN 1.0
        f150  NetFlex-3/P ThunderLAN 2.3
+0e55  HaSoTec GmbH
 0eac  SHF Communication Technologies AG
        0008  Ethernet Powerlink Managing Node 01
 0f62  Acrox Technologies Co., Ltd.
                1000 9291  MegaRAID SAS 9286CV-8e
                1000 9295  MegaRAID SAS 9286CV-8eCC
                1014 040b  ServeRAID M5110 SAS/SATA Controller
+               1014 040c  ServeRAID M5120 SAS/SATA Controller
                1014 0412  ServeRAID M5110e SAS/SATA Controller
                1028 1f2d  PERC H810 Adapter
                1028 1f30  PERC H710 Embedded
                1028 1f35  PERC H710 Adapter
                1028 1f37  PERC H710 Mini (for blades)
                1028 1f38  PERC H710 Mini (for monolithics)
+               15d9 0690  LSI MegaRAID ROMB
+               8086 3510  RMS25PB080 RAID Controller
                8086 3513  RMS25CB080 RAID Controller
        005c  SAS1064A PCI-X Fusion-MPT SAS
        005d  MegaRAID SAS-3 3108 [Invader]
                1028 1f48  PERC H730P Mini (for blades)
                1028 1f49  PERC H730 Mini
                1028 1f4a  PERC H730 Mini (for blades)
+               17aa 1052  ThinkServer RAID 720i
+               17aa 1053  ThinkServer RAID 720ix
        005e  SAS1066 PCI-X Fusion-MPT SAS
        005f  MegaRAID SAS-3 3008 [Fury]
                1028 1f44  PERC H330 Adapter
                1137 0073  2008 ROMB
                1137 00b0  UCSC RAID SAS 2008M-8i
                1137 00b1  UCSC RAID SAS 2008M-8i
+               1137 00c2  UCS E-Series Double Wide
+               1137 00c3  UCS E-Series Single Wide
                15d9 0400  Supermicro SMC2008-iMR
                1734 1177  RAID Ctrl SAS 6G 0/1 (D2607)
+               17aa 1051  ThinkServer RAID 510i
                8086 350d  RMS2AF040 RAID Controller
                8086 9240  RAID Controller RS2WC080
                8086 9241  RAID Controller RS2WC040
                1028 0533  PowerEdge Expandable RAID Controller 4/QC
                8086 0520  MegaRAID RAID Controller SRCU41L
                8086 0523  MegaRAID RAID Controller SRCS16
+       3050  SAS2008 PCI-Express Fusion-MPT SAS-2
        6001  DX1 Multiformat Broadcast HD/SD Encoder/Decoder
 1001  Kolter Electronic
        0010  PCI 1616 Measurement card with 32 digital I/O lines
        1305  Kaveri
        1306  Kaveri
        1307  Kaveri
-       1309  Kaveri
-       130a  Kaveri
-       130b  Kaveri
-       130c  Kaveri
-       130d  Kaveri
-       130e  Kaveri
-       130f  Kaveri
+       1308  Kaveri HDMI/DP Audio Controller
+       1309  Kaveri [Radeon R7 Graphics]
+       130a  Kaveri [Radeon R6 Graphics]
+       130b  Kaveri [Radeon R4 Graphics]
+       130c  Kaveri [Radeon R7 Graphics]
+       130d  Kaveri [Radeon R6 Graphics]
+       130e  Kaveri [Radeon R5 Graphics]
+       130f  Kaveri [Radeon R7 Graphics]
        1310  Kaveri
        1311  Kaveri
-       1313  Kaveri
+       1312  Kaveri
+       1313  Kaveri [Radeon R7 Graphics]
        1314  Wrestler HDMI Audio
                174b 1001  PURE Fusion Mini
-       1315  Kaveri
-       1316  Kaveri
-       131b  Kaveri
-       131c  Kaveri
+       1315  Kaveri [Radeon R5 Graphics]
+       1316  Kaveri [Radeon R5 Graphics]
+       1317  Kaveri
+       1318  Kaveri [Radeon R5 Graphics]
+       131b  Kaveri [Radeon R4 Graphics]
+       131c  Kaveri [Radeon R7 Graphics]
+       131d  Kaveri [Radeon R6 Graphics]
        1714  BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
                103c 168b  ProBook 4535s
        3150  RV380/M24 [Mobility Radeon X600]
        5f57  R423 [Radeon X800 XT]
        6600  Mars [Radeon HD 8670A/8670M/8750M]
        6601  Mars [Radeon HD 8730M]
+               103c 2100  FirePro M4100
        6602  Mars
        6603  Mars
-       6604  Mars [Radeon R7 M265]
-       6605  Mars [Radeon R7 M260]
+       6604  Opal XT [Radeon R7 M265]
+       6605  Opal PRO [Radeon R7 M260]
        6606  Mars XTX [Radeon HD 8790M]
-       6607  Mars LE [Radeon HD 8530M]
-       6610  Oland XT [Radeon HD 8670/R7 250]
-       6611  Oland [Radeon HD 8570]
+       6607  Mars LE [Radeon HD 8530M / R5 M240]
+       6610  Oland XT [Radeon HD 8670 / R7 250]
+               1019 0030  Radeon HD 8670
+               1028 2120  Radeon R7 250
+               1028 2322  Radeon R7 250
+               1462 2910  Radeon HD 8670
+               1462 2911  Radeon HD 8670
+               1642 3c81  Radeon HD 8670
+               1642 3c91  Radeon HD 8670
+       6611  Oland [Radeon HD 8570 / R7 240 OEM]
+               1028 210b  Radeon R5 240 OEM
+               174b 4248  Radeon R7 240 OEM
+               174b a240  Radeon R7 240 OEM
+               1b0a 90d3  Radeon R7 240 OEM
        6613  Oland PRO [Radeon R7 240]
+               1682 7240  R7 240 2048 MB
        6620  Mars
        6621  Mars PRO
        6623  Mars
        6631  Oland
-       6640  Saturn XT [Radeon HD 8950M]
+       6640  Saturn XT [FirePro M6100]
        6641  Saturn PRO [Radeon HD 8930M]
-       6649  Bonaire
+       6649  Bonaire [FirePro W5100]
        6650  Bonaire
        6651  Bonaire
        6658  Bonaire XTX [Radeon R7 260X]
-       665c  Bonaire XT [Radeon HD 7790/8770]
+       665c  Bonaire XT [Radeon HD 7790/8770 / R9 260 OEM]
                1043 0452  Radeon HD 7790 DirectCU II OC
 # R7790-1GD5/OC
                1462 2930  Radeon HD 7790 OC
                1462 2932  Radeon HD 8770
+               1462 2934  Radeon R9 260 OEM
+               148c 9260  Radeon R9 260 OEM
 # FX-779A-CDB4 / FX-779A-CDBC
                1682 3310  Radeon HD 7790 Black Edition 2 GB
 # 100356OCL / 11210-01-20G
                174b e253  Radeon HD 7790 Dual-X OC
                1787 2329  Radeon HD 7790 TurboDuo
-       665d  Bonaire
+       665d  Bonaire [Radeon R7 200 Series]
        6660  Sun XT [Radeon HD 8670A/8670M/8690M]
-       6663  Sun PRO [Radeon HD 8570M]
-       6664  Jet XT [Radeon R5 M200 Series]
-       6665  Jet PRO [Radeon R5 M200 Series]
-       6667  Jet ULT [Radeon R5 M200 Series]
+       6663  Sun PRO [Radeon HD 8570A/8570M]
+               1025 0846  Radeon HD 8570A
+       6664  Jet XT [Radeon R5 M240]
+       6665  Jet PRO [Radeon R5 M230]
+       6667  Jet ULT [Radeon R5 M230]
        666f  Sun LE [Radeon HD 8550M]
        6670  Hainan
        6704  Cayman PRO GL [FirePro V7900]
                1462 6570  Turks [Radeon HD 6570]
                148c 6570  Turks [Radeon HD 6570]
                1682 6570  Turks [Radeon HD 6570]
+               174b 5570  Turks [Radeon HD 5570]
                174b 6570  Turks [Radeon HD 6570]
+               174b 7570  Turks [Radeon HD 7570]
+               174b 8510  Turks [Radeon HD 8510]
+               174b 8570  Turks [Radeon HD 8570]
                1787 6570  Turks [Radeon HD 6570]
                17af 6570  Turks [Radeon HD 6570]
                8086 2111  Radeon HD 6625M
                1682 3300  Radeon HD 7670
                174b 7670  Radeon HD 7670
                174b e181  Radeon HD 6670
-       6759  Turks PRO [Radeon HD 6570/7570]
+               1787 2309  Radeon HD 6670
+       6759  Turks PRO [Radeon HD 6570/7570/8550]
                103c 3130  Radeon HD 6570
+               1043 0403  Radeon HD 6570
                1462 2500  Radeon HD 6570
                1462 2509  Radeon HD 7570
                148c 7570  Radeon HD 7570
                1642 3a67  Radeon HD 6570
                1682 3280  Radeon HD 7570
+               1682 3530  Radeon HD 8550
                174b 7570  Radeon HD 7570
                174b e142  Radeon HD 6570
                174b e181  Radeon HD 6570
                1b0a 909e  Radeon HD 6570
                1b0a 90b5  Radeon HD 7570
                1b0a 90b6  Radeon HD 7570
+       675b  Turks [Radeon HD 7600 Series]
        675d  Turks PRO [Radeon HD 7570]
        675f  Turks LE [Radeon HD 5570/6510/7510/8510]
                148c 6510  Radeon HD 6510
                17aa 3629  Radeon HD 6450A
                17aa 363c  Radeon HD 6450A
                17aa 3658  Radeon HD 7470A
-       6771  Caicos XTX [Radeon HD 8490]
+       6771  Caicos XTX [Radeon HD 8490 / R5 235X OEM]
        6772  Caicos [Radeon HD 7450A]
-       6778  Caicos XT [Radeon HD 7470/8470]
+       6778  Caicos XT [Radeon HD 7470/8470 / R5 235 OEM]
                1019 0024  Radeon HD 7470
                1019 0027  Radeon HD 8470
                1028 2120  Radeon HD 7470
                1642 3c75  Radeon HD 8470
                174b 8145  Radeon HD 8470
                174b e145  Radeon HD 7470
-       6779  Caicos [Radeon HD 6450/7450/8450]
+       6779  Caicos [Radeon HD 6450/7450/8450 / R5 230 OEM]
                1019 0016  Radeon HD 6450
                1019 0017  Radeon HD 6450
                1019 0018  Radeon HD 6450
                1028 2120  Radeon HD 6450
                103c 2128  Radeon HD 6450
                103c 2aee  Radeon HD 7450A
+               1462 2125  Radeon HD 6450
                1462 2346  Radeon HD 7450
                1462 2490  Radeon HD 6450
                1462 2494  Radeon HD 6450
        6790  Tahiti
        6791  Tahiti
        6792  Tahiti
-       6798  Tahiti XT [Radeon HD 7970/R9 280X]
+       6798  Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X]
                1002 3000  Tahiti XT2 [Radeon HD 7970 GHz Edition]
                1002 3001  Tahiti XTL [Radeon R9 280X]
                1002 4000  Radeon HD 8970 OEM
                1043 9999  ARES II
                1092 3000  Tahiti XT2 [Radeon HD 7970 GHz Edition]
                1458 2261  Tahiti XT2 [Radeon HD 7970 GHz Edition OC]
+               1462 2774  MSI R7970 TF 3GD5/OC BE
                1682 3211  Double D HD 7970 Black Edition
 # FX-797A-TNBC
                1682 3213  HD 7970 Black Edition
                1787 2317  Radeon HD 7990
                1787 3000  Tahiti XT2 [Radeon HD 7970 GHz Edition]
        6799  New Zealand [Radeon HD 7900 Series]
-       679a  Tahiti PRO [Radeon HD 7950]
+       679a  Tahiti PRO [Radeon HD 7950/8950 OEM / R9 280]
                1002 0b01  Radeon HD 8950 OEM
                1002 3000  Tahiti PRO2 [Radeon HD 7950 Boost]
                1462 3000  Radeon HD 8950 OEM
        67a0  Hawaii XT GL
        67a1  Hawaii GL
        67a2  Hawaii GL
+       67a8  Hawaii
+       67a9  Hawaii
+       67aa  Hawaii
        67b0  Hawaii XT [Radeon R9 290X]
        67b1  Hawaii PRO [Radeon R9 290]
-       67b9  Vesuvius
+       67b9  Vesuvius [Radeon R9 295 X2]
        67be  Hawaii LE
        6800  Wimbledon XT [Radeon HD 7970M]
                1002 0124  Radeon HD 7970M
                8086 2110  Radeon HD 7970M
                8086 2111  Radeon HD 7970M
-       6801  Neptune [Radeon HD 8970M]
+       6801  Neptune XT [Radeon HD 8970M]
                1002 0124  Radeon HD 8970M
+               1462 1117  Radeon R9 M290X
                8086 2110  Radeon HD 8970M
                8086 2111  Radeon HD 8970M
        6802  Wimbledon
                174b 8b04  Radeon HD 8860
        6819  Pitcairn PRO [Radeon HD 7850]
                174b e221  Radeon HD 7850 2GB GDDR5 DVI-I/DVI-D/HDMI/DP
-       6820  Venus XTX [Radeon HD 8890M]
+       6820  Venus XTX [Radeon HD 8890M / R9 M275X]
                103c 1851  Radeon HD 7750M
-       6821  Venus XT [Radeon HD 8870M]
+               17aa 3801  Radeon R9 M275
+       6821  Venus XT [Radeon HD 8870M / R9 M270X]
                1002 031e  FirePro SX4000
-       6822  Venus PRO
-       6823  Venus PRO [Radeon HD 8850M]
+               1028 05cc  FirePro M5100
+               1028 15cc  FirePro M5100
+       6822  Venus PRO [Radeon E8860]
+       6823  Venus PRO [Radeon HD 8850M / R9 M265X]
        6825  Heathrow XT [Radeon HD 7870M]
                8086 2111  Chelsea PRO
        6826  Chelsea LP [Radeon HD 7700M Series]
                103c 1851  Radeon HD 7750M
        6830  Cape Verde [Radeon HD 7800M Series]
        6831  Cape Verde [AMD Radeon HD 7700M Series]
-       6835  Cape Verde PRX [Radeon R7 260]
+       6835  Cape Verde PRX [Radeon R9 255 OEM]
        6837  Cape Verde LE [Radeon HD 7730/8730]
                1462 2796  Radeon HD 8730
                1462 8092  Radeon HD 8730
        6838  Cape Verde
        6839  Cape Verde
        683b  Cape Verde [Radeon HD 7700 Series]
-       683d  Cape Verde XT [Radeon HD 7770 GHz Edition]
+       683d  Cape Verde XT [Radeon HD 7770/8760 / R7 250X]
                1002 0030  Radeon HD 8760 OEM
                1019 0030  Radeon HD 8760 OEM
                103c 6890  Radeon HD 8760 OEM
-       683f  Cape Verde PRO [Radeon HD 7750]
+               1043 8760  Radeon HD 8760 OEM
+               174b 8304  Radeon HD 8760 OEM
+       683f  Cape Verde PRO [Radeon HD 7750 / R7 250E]
        6840  Thames [Radeon HD 7500M/7600M Series]
                1025 050e  Radeon HD 7670M
                1025 050f  Radeon HD 7670M
                103c 2aac  Radeon HD 5450
                103c 2aae  Radeon HD 5450
                103c 3580  Radeon HD 5450
+               1043 0386  Radeon HD 5450
                1043 03c2  EAH5450 SILENT/DI/512MD2 (LP)
                1462 2130  Radeon HD 5450
                1462 2131  Radeon HD 5450
                17af 3012  Radeon HD 5490
                17af 3013  Radeon HD 5470
                17af 3014  Radeon HD 6350
-       68fa  Cedar [Radeon HD 7350/8350]
+       68fa  Cedar [Radeon HD 7350/8350 / R5 220]
                1019 0019  Radeon HD 7350
                1019 0021  Radeon HD 7350
                1019 0022  Radeon HD 7350
                1462 2495  Radeon HD 7350
                1462 b490  Radeon HD 7350
                1642 3985  Radeon HD 7350
+               174b 3510  Radeon HD 8350
+               174b 3521  Radeon R5 220
+               174b 3522  Radeon R5 220
                174b 7350  Radeon HD 7350
                174b 8153  Radeon HD 8350
                174b e127  Radeon HD 7350
                174b e180  Radeon HD 7350
                17af 3015  Radeon HD 7350
        68fe  Cedar LE
+       6900  Topaz XT [Radeon R7 M260]
+       6901  Topaz PRO [Radeon R5 M255]
        6920  Tonga
        700f  RS100 AGP Bridge
        7010  RS200/RS250 AGP Bridge
        9808  Wrestler [Radeon HD 7340]
        9809  Wrestler [Radeon HD 7310]
        980a  Wrestler [Radeon HD 7290]
-       9830  Kabini [Radeon HD 8400]
+       9830  Kabini [Radeon HD 8400 / R3 Series]
        9831  Kabini [Radeon HD 8400E]
        9832  Kabini [Radeon HD 8330]
        9833  Kabini [Radeon HD 8330E]
        9834  Kabini [Radeon HD 8210]
        9835  Kabini [Radeon HD 8310E]
-       9836  Kabini [Radeon HD 8280]
+       9836  Kabini [Radeon HD 8280 / R3 Series]
        9837  Kabini [Radeon HD 8280E]
-       9838  Kabini [Radeon HD 8240]
+       9838  Kabini [Radeon HD 8240 / R3 Series]
        9839  Kabini [Radeon HD 8180]
        983a  Kabini
        983b  Kabini
        985d  Mullins
        985e  Mullins
        985f  Mullins
+       9900  Trinity [Radeon HD 7660G]
 # AMD A10-5800K CPU
        9901  Trinity [Radeon HD 7660D]
        9902  Trinity HDMI Audio Controller
+               103c 194e  ProBook 455 G1 Notebook
        9903  Trinity [Radeon HD 7640G]
+               103c 194e  ProBook 455 G1 Notebook
+               103c 1952  ProBook 455 G1 Notebook
        9904  Trinity [Radeon HD 7560D]
        9905  Trinity [FirePro A300 Series Graphics]
        9906  Trinity [FirePro A300 Series Graphics]
        999a  Richland [Radeon HD 8410G]
        999b  Richland [Radeon HD 8310G]
        999c  Richland
-       999d  Richland
+# AMD Quad-Core A8-Series APU A8-6500T with Radeon HD 8550D
+       999d  Richland [Radeon HD 8550D]
        99a0  Trinity [Radeon HD 7520G]
        99a2  Trinity [Radeon HD 7420G]
        99a4  Trinity [Radeon HD 7400G]
                2646 0001  KNE100TX Fast Ethernet
        000a  21230 Video Codec
        000d  PBXGB [TGA2]
-       000f  PCI-to-PDQ Interface Chip [PFI]
+       000f  DEFPA FDDI PCI-to-PDQ Interface Chip [PFI]
                1011 def1  FDDI controller (DEFPA)
                103c def1  FDDI controller (3X-DEFPA)
        0014  DECchip 21041 [Tulip Pass 3]
                1186 1101  DFE-500TX Fast Ethernet
                1186 1102  DFE-500TX Fast Ethernet
                1186 1112  DFE-570TX Quad Fast Ethernet
+               11f0 4235  21143 [FASTLine-II UTP 10/100]
                1259 2800  AT-2800Tx Fast Ethernet
                1266 0004  Eagle Fast EtherMAX
                12af 0019  NetFlyer Cardbus Fast Ethernet
        00ac  GD 5436 [Alpine]
        00b0  GD 5440
        00b8  GD 5446
+               1af4 1100  QEMU Virtual Machine
        00bc  GD 5480
                1013 00bc  CL-GD5480
        00d0  GD 5462
                1014 0475  PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EC)
                1014 0499  PCIe3 x16 Cache SAS RAID Internal Adapter 6Gb (57ED)
                1014 049a  PCIe3 x16 SAS RAID Internal Adapter 6Gb (57EE)
+               1014 04c7  PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCA)
+               1014 04c8  PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CD2)
+               1014 0c49  PCIe3 x 8 Cache SAS RAID Internal Adapter 6GB(2CCD)
        04aa  Flash Adapter 90 (PCIe2 0.9TB)
        3022  QLA3022 Network Adapter
        4022  QLA3022 Network Adapter
                1028 0493  PowerEdge RAID Controller 3/DC
                1028 0511  PowerEdge Cost Effective RAID Controller ATA100/4Ch
                103c 60e7  NetRAID-1M
+               103c 60e8  NetRaid 2M [AMI MegaRaid 493]
        9010  MegaRAID 428 Ultra RAID Controller
        9030  EIDE Controller
        9031  EIDE Controller
        1417  Family 15h (Models 10h-1fh) Processor Root Port
        1418  Family 15h (Models 10h-1fh) Processor Root Port
        1419  Family 15h (Models 10h-1fh) I/O Memory Management Unit
+       141a  Family 15h (Models 30h-3fh) Processor Function 0
+       141b  Family 15h (Models 30h-3fh) Processor Function 1
+       141c  Family 15h (Models 30h-3fh) Processor Function 2
+       141d  Family 15h (Models 30h-3fh) Processor Function 3
+       141e  Family 15h (Models 30h-3fh) Processor Function 4
+       141f  Family 15h (Models 30h-3fh) Processor Function 5
+       1422  Family 15h (Models 30h-3fh) Processor Root Complex
+       1423  Family 15h (Models 30h-3fh) I/O Memory Management Unit
+       1426  Family 15h (Models 30h-3fh) Processor Root Port
        1439  Family 16h Processor Functions 5:1
        1510  Family 14h Processor Root Complex
                174b 1001  PURE Fusion Mini
                1668 0299  ActionLink Home Network Adapter
        2003  Am 1771 MBW [Alchemy]
        2020  53c974 [PCscsi]
+               1af4 1100  QEMU Virtual Machine
        2040  79c974
        2080  CS5536 [Geode companion] Host Bridge
        2081  Geode LX Video
        7800  FCH SATA Controller [IDE mode]
        7801  FCH SATA Controller [AHCI mode]
                103c 168b  ProBook 4535s Notebook
+               103c 194e  ProBook 455 G1 Notebook
        7802  FCH SATA Controller [RAID mode]
        7803  FCH SATA Controller [RAID mode]
        7804  FCH SATA Controller [AHCI mode]
        7805  FCH SATA Controller [RAID mode]
        7806  FCH SD Flash Controller
        7807  FCH USB OHCI Controller
+               103c 194e  ProBook 455 G1 Notebook
        7808  FCH USB EHCI Controller
+               103c 194e  ProBook 455 G1 Notebook
        7809  FCH USB OHCI Controller
+               103c 194e  ProBook 455 G1 Notebook
        780b  FCH SMBus Controller
+               103c 194e  ProBook 455 G1 Notebook
        780c  FCH IDE Controller
        780d  FCH Azalia Controller
+               103c 194e  ProBook 455 G1 Notebook
                1043 8444  F2A85-M Series
        780e  FCH LPC Bridge
+               103c 194e  ProBook 455 G1 Notebook
        780f  FCH PCI Bridge
        7812  FCH USB XHCI Controller
        7813  FCH SD Flash Controller
        7814  FCH USB XHCI Controller
-       7900  CZ SATA Controller [IDE mode]
-       790b  CZ SMBus Controller
+               103c 194e  ProBook 455 G1 Notebook
+       7900  FCH SATA Controller [IDE mode]
+       7901  FCH SATA Controller [AHCI mode]
+       7902  FCH SATA Controller [RAID mode]
+       7903  FCH SATA Controller [RAID mode]
+       7904  FCH SATA Controller [AHCI mode]
+       7906  FCH SD Flash Controller
+       7908  FCH USB EHCI Controller
+       790b  FCH SMBus Controller
+       790e  FCH LPC Bridge
+       790f  FCH PCI Bridge
+       7914  FCH USB XHCI Controller
        9600  RS780 Host Bridge
                1043 82f1  M3A78-EH Motherboard
        9601  RS880 Host Bridge
                110a 001e  MGA-G100 AGP
        2007  MGA Mistral
        2527  Millennium G550
+# PCI\VEN_102B&DEV_2527&SUBSYS_0F42102B&REV_01
+               102b 0f42  Matrox G550 Low Profile PCI
                102b 0f83  Millennium G550
                102b 0f84  Millennium G550 Dual Head DDR 32Mb
                102b 1e41  Millennium G550
        47c2  Solios COM port
        4949  Radient frame grabber family
                102b 0010  Radient eCL (Single-full) frame grabber
+               102b 0011  Radient eCLV (Single-full) frame grabber
                102b 0020  Radient eCL (Dual-base) frame grabber
                102b 0030  Radient eCL (Dual-full) frame grabber
                102b 0040  Radient eCL (Quad-base) frame grabber
                102b 0050  Radient eCL (Golden) frame grabber
+               102b 1010  Radient eV-CXP (quad CXP-6) frame grabber
+               102b 1015  Radient eV-CXP (dual CXP-6) frame grabber
+               102b 1020  Radient eV-CXP (quad CXP-3) frame grabber
+               102b 1050  Radient eV-CXP (Golden) frame grabber
        4cdc  Morphis JPEG2000 accelerator
        4f54  Morphis (e)Quad frame grabber
        4fc5  Morphis (e)Dual frame grabber
                1028 04b2  Vostro 3350
                1028 04da  Vostro 3750
                1043 8413  P8P67 Deluxe Motherboard
+               1af4 1100  QEMU Virtual Machine
                1b96 0001  USB 3.0 PCIe Card
        01e7  uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller
        01f2  uPD72874 [Firewarden] IEEE1394a OHCI 1.1 Link/3-port PHY Controller
        3238  Smart Array E200i (SAS Controller)
                103c 3211  Smart Array E200i
                103c 3212  Smart Array E200
+       3239  Smart Array Gen9 Controllers
+               103c 21bd  Smart Array
+               103c 21be  Smart Array
+               103c 21bf  Smart Array
+               103c 21c0  Smart Array
+               103c 21c1  Smart Array
+               103c 21c2  Smart Array
+               103c 21c3  Smart Array
+               103c 21c4  Smart Array
+               103c 21c5  Smart Array
+               103c 21c6  Smart Array
+               103c 21c7  Smart Array
+               103c 21c8  Smart Array
+               103c 21c9  Smart Array
+               103c 21ca  Smart Array
+               103c 21cb  Smart Array
+               103c 21cc  Smart Array
+               103c 21cd  Smart Array
+               103c 21ce  Smart Array
        323a  Smart Array G6 controllers
                103c 3241  Smart Array P212
                103c 3243  Smart Array P410
                103c 3352  P421
                103c 3354  P420i
                103c 3355  P220i
-# New Smart Array controllers for Gen8+ servers
        323c  Smart Array Gen8+ Controllers
-# Add marketing names for Gen8+ Smart Array
                103c 1920  P430i
-# Add marketing names for Gen8+ Smart Array
                103c 1921  P830i
-# Add marketing names for Gen8+ Smart Array
                103c 1922  P430
-# Add marketing names for Gen8+ Smart Array
                103c 1923  P431
-# Add marketing names for Gen8+ Smart Array
                103c 1924  P830
                103c 1925  Smart Array
-# Add marketing names for Gen8+ Smart Array
                103c 1926  P731m
-# Add marketing names for Gen8+ Smart Array
                103c 1928  P230i
        3300  Integrated Lights-Out Standard Virtual USB Controller
                103c 3304  iLO2
        4031  zx2 I/O Controller
        4037  PCIe Local Bus Adapter
        403b  PCIe Root Port
-       60e8  NetRAID-2M : ZX1/M (OEM AMI MegaRAID 493)
 103e  Solliday Engineering
 103f  Synopsys/Logic Modeling Group
 1040  Accelgraphics Inc.
        0009  STG 1764X
        0010  STG4000 [3D Prophet Kyro Series]
                104a 4018  ST PowerVR Kyro (64MB AGP TVO)
+# 64MB AGP
+               1681 0010  PowerVR Kyro II [3D Prophet 4500]
                1681 0028  3D Prophet 4000XT
                1681 c010  3D Prophet 4500 TV-Out
                1681 c069  3D Prophet 4000XT
        8022  TSB43AB22 IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx]
                104c 8023  TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
        8023  TSB43AB22A IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx]
+               1028 0168  Precision Workstation 670 Mainboard
                103c 088c  NC8000 laptop
                1043 808b  K8N4/A8N Series Mainboard
                1043 815b  P5W DH Deluxe Motherboard
        3020  FIVE-EX based Fibre Channel to PCIe HBA
        302c  M001 PCI Express Switch Upstream Port
        302d  M001 PCI Express Switch Downstream Port
+       3070  Hitachi FIVE-FX Fibre Channel to PCIe HBA
        3505  SH7751 PCI Controller (PCIC)
        350e  SH7751R PCI Controller (PCIC)
 1055  Efar Microsystems
        003b  UniNorth/Intrepid ATA/100
        003e  KeyLargo/Intrepid Mac I/O
        003f  KeyLargo/Intrepid USB
+               1af4 1100  QEMU Virtual Machine
        0040  K2 KeyLargo USB
        0041  K2 KeyLargo Mac/IO
        0042  K2 FireWire
                103c 12d7  4Gb Fibre Channel [AB379A]
                103c 12dd  4Gb Fibre Channel [AB429A]
        2432  ISP2432-based 4Gb Fibre Channel to PCI Express HBA
+               103c 7040  FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A]
        2532  ISP2532-based 8Gb Fibre Channel to PCI Express HBA
                103c 3262  StorageWorks 81Q
                1077 0167  QME2572 Dual Port FC8 HBA Mezzanine
                1077 0246  8300 Series Dual Port 10GbE Converged Network Adapter (TCP/IP Networking)
        8031  8300 Series 10GbE Converged Network Adapter (FCoE)
        8032  8300 Series 10GbE Converged Network Adapter (iSCSI)
+       8430  ISP8324 1/10GbE Converged Network Controller (NIC VF)
+       8431  8300 Series 10GbE Converged Network Adapter (FCoE VF)
        8432  ISP2432M-based 10GbE Converged Network Adapter (CNA)
 1078  Cyrix Corporation
        0000  5510 [Grappa]
 108d  Olicom
        0001  Token-Ring 16/4 PCI Adapter (3136/3137)
        0002  16/4 Token Ring
-       0004  RapidFire 3139 Token-Ring 16/4 PCI Adapter
+       0004  RapidFire OC-3139/3140 Token-Ring 16/4 PCI Adapter
                108d 0004  OC-3139/3140 RapidFire Token-Ring 16/4 Adapter
        0005  GoCard 3250 Token-Ring 16/4 CardBus PC Card
        0006  OC-3530 RapidFire Token-Ring 100
        2880  DAQCard-6601
        2890  PCI-6036E
        28c0  PCI-6014
+       28d0  PCI-5122
+       28e0  PXI-5122
        2a60  PCI-6023E
        2a70  PCI-6024E
        2a80  PCI-6025E
        2ca0  PCI-6034E
        2cc0  PXI-6608
        2db0  PCI-6608
+       702c  PXI-7831R
+       702d  PCI-7831R
+       702e  PXI-7811R
+       702f  PCI-7811R
+       7055  PXI-7830R
+       7056  PCI-7830R
+       7074  PXI-7833R
+       7083  PCI-7833R
 # Low-Cost, High-Current, 96 Ch, 5 V TTL/CMOS Digital I/O
        7085  PCI-6509
        70a9  PCI-6528 (Digital I/O at 60V)
        70bd  PCI-6281
        70bf  PXI-6281
        70c0  PCI-6143
+       70f0  PXI-5922
+       70f1  PCI-5922
        70f2  PCI-6224
+       7121  PXI-5122EX
+       7122  PCI-5122EX
        7144  PXI-5124 (12-bit 200 MS/s Digitizer)
+       7145  PCI-5124
+       714c  PXI-5114
+       714d  PCI-5114
+       7152  PCI-5640R
        716c  PCI-6225
        717d  PCIE-6251
        717f  PCIe-6259
+       7193  PXI-7813R
+       7194  PCI-7813R
        71bc  PCI-6221 (37pin)
        71d0  PXI-6143
+       71dc  PCI-1588
+       7260  PXI-5142
+       7261  PCI-5142
+       72a8  PXI-5152
+       72a9  PCI-5152
+       72aa  PXI-5105
+       72ab  PCI-5105
+       72b8  PXI-6682
+       730f  PXI-5922EX
+       7310  PCI-5922EX
+       7333  PXI-5900
+       7349  PXI-5154
+       734a  PCI-5154
+       737d  PXI-5124EX
+       7384  PXI-7851R
+       7385  PXI-7852R
+       7386  PCIe-7851R
+       7387  PCIe-7852R
+       7390  PXI-7841R
+       7391  PXI-7842R
+       7392  PXI-7853R
+       7393  PCIe-7841R
+       7394  PCIe-7842R
+       73a5  PXIe-5641R
+       73d5  PXI-7951R
+       73d6  PXI-7952R
+       73d7  PXI-7953R
+       73e1  PXI-7854R
+       73ec  PXI-7954R
+       73f0  PXI-5153
+       73f1  PCI-5153
+       7405  PXIe-6674T
+       745e  PXI-5153EX
+       745f  PCI-5153EX
+       7460  PXI-5154EX
+       7461  PCI-5154EX
+       7539  NI 9157
+       753a  NI 9159
+       75e5  PXI-6683
+       75e6  PXI-6683H
+       7626  NI 9154
+       7627  NI 9155
        b001  IMAQ-PCI-1408
        b011  IMAQ-PXI-1408
        b021  IMAQ-PCI-1424
        b071  IMAQ-PCI-1422
        b081  IMAQ-PXI-1422
        b091  IMAQ-PXI-1411
-       c4c4  PXIe-4353
+       c4c4  PXIe/PCIe Device
+               1093 74b2  PXIe-4353
+               1093 74d0  PXIe-7961R
+               1093 74e2  PXIe-7962R
+               1093 74e3  PXIe-7965R
+               1093 7553  PCIe-1473R
+               1093 75ce  PXIe-7966R
+               1093 76b7  PXIe-7975R
+               1093 76d0  PXIe-5160
        c801  PCI-GPIB
        c831  PCI-GPIB bridge
 1094  First International Computers [FIC]
                1852 1852  FlyVideo'98 - Video (with FM Tuner)
                18ac d500  DViCO FusionHDTV5 Lite
                270f fc00  Digitop DTT-1000
+# Vendor/ID appear to be randomly chosen
+               aa00 1460  Spectra8 CardA Input0
+# Vendor/ID appear to be randomly chosen
+               aa01 1461  Spectra8 CardA Input1
+# Vendor/ID appear to be randomly chosen
+               aa02 1462  Spectra8 CardA Input2
+# Vendor/ID appear to be randomly chosen
+               aa03 1463  Spectra8 CardA Input3
+# Vendor/ID appear to be randomly chosen
+               aa04 1464  Spectra8 CardB Input0
+# Vendor/ID appear to be randomly chosen
+               aa05 1465  Spectra8 CardB Input1
+# Vendor/ID appear to be randomly chosen
+               aa06 1466  Spectra8 CardB Input2
+# Vendor/ID appear to be randomly chosen
+               aa07 1467  Spectra8 CardB Input3
+# Vendor/ID appear to be randomly chosen
+               aa08 1468  Spectra8 CardC Input0
+# Vendor/ID appear to be randomly chosen
+               aa09 1469  Spectra8 CardC Input1
+# Vendor/ID appear to be randomly chosen
+               aa0a 146a  Spectra8 CardC Input2
+# Vendor/ID appear to be randomly chosen
+               aa0b 146b  Spectra8 CardC Input3
+# Vendor/ID appear to be randomly chosen
+               aa0c 146c  Spectra8 CardD Input0
+# Vendor/ID appear to be randomly chosen
+               aa0d 146d  Spectra8 CardD Input1
+# Vendor/ID appear to be randomly chosen
+               aa0e 146e  Spectra8 CardD Input2
+# Vendor/ID appear to be randomly chosen
+               aa0f 146f  Spectra8 CardD Input3
                bd11 1200  PCTV pro (TV + FM stereo receiver)
        036f  Bt879 Video Capture
                127a 0044  Bt879 Video Capture NTSC
        4002  TIO-CE PCI Express Port
        8001  O2 1394
        8002  G-net NT
+# PCIe x1 Low Profile
+       802b  REACT external interrupt controller
 10aa  ACC Microelectronics
        0000  ACCM 2188
        2051  2051 CPU bridge
        8718  PEX 8718 16-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch
        8732  PEX 8732 32-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch
        8734  PEX 8734 32-lane, 8-Port PCI Express Gen 3 (8.0GT/s) Switch
+       8747  PEX 8747 48-Lane, 5-Port PCI Express Gen 3 (8.0 GT/s) Switch
 # This is the Non-Transparent-Bridge Virtualized Port as presented by the PLX PEX 8732 chip, the physical bridges show up at 10b5:8732
        87b0  PEX 8732 32-lane, 8-Port PCI Express Gen 3 (8.0 GT/s) Switch
        9016  PLX 9016 8-port serial controller
                10b6 0007  Presto PCI
        0009  Smart 100/16/4 PCI-HS Ringnode
                10b6 0009  Smart 100/16/4 PCI-HS Ringnode
-       000a  Smart 100/16/4 PCI Ringnode
-               10b6 000a  Smart 100/16/4 PCI Ringnode
+       000a  Token Ring 100/16/4 Ringnode/Ringrunner
+               10b6 000a  Token Ring 100/16/4 Ringnode/Ringrunner
        000b  16/4 CardBus Adapter Mk2
                10b6 0008  16/4 CardBus Adapter Mk2
                10b6 000b  16/4 Cardbus Adapter Mk2
        1001  Collage 155 ATM Server Adapter
 10b7  3Com Corporation
        0001  3c985 1000BaseSX (SX/TX)
+# wrong ID?
+               9850 0001  3c985B-SX
        0013  AR5212 802.11abg NIC (3CRDAG675)
                10b7 2031  3CRDAG675 11a/b/g Wireless PCI Adapter
        0910  3C910-A01
        00c8  NV41M [GeForce Go 6800]
        00c9  NV41M [GeForce Go 6800 Ultra]
        00cc  NV41GLM [Quadro FX Go1400]
-       00cd  NV41GL [Quadro FX 3450/4000 SDI]
-               10de 029b  wx4300 Workstation
+       00cd  NV42GL [Quadro FX 3450/4000 SDI]
        00ce  NV41GL [Quadro FX 1400]
        00cf  NV41
        00d0  nForce3 LPC Bridge
                1682 2490  GX-285N-ZDF
        05e6  GT200b [GeForce GTX 275]
        05e7  GT200GL [Tesla C1060 / M1060]
+               10de 0595  Tesla T10 Processor
+               10de 068f  Tesla T10 Processor
+               10de 0697  Tesla M1060
+               10de 0714  Tesla M1060
+               10de 0743  Tesla M1060
        05ea  GT200 [GeForce GTX 260]
        05eb  GT200 [GeForce GTX 295]
        05ed  GT200GL [Quadro Plex 2200 D2]
        0607  G92 [GeForce GTS 240]
        0608  G92M [GeForce 9800M GTX]
        0609  G92M [GeForce 8800M GTS]
+               106b 00a7  GeForce 8800 GS
        060a  G92M [GeForce GTX 280M]
        060b  G92M [GeForce 9800M GT]
        060c  G92M [GeForce 8800M GTX]
        062c  G94M [GeForce 9800M GTS]
        062d  G94 [GeForce 9600 GT]
        062e  G94 [GeForce 9600 GT]
+               106b 0605  GeForce GT 130
        062f  G94 [GeForce 9800 S]
        0630  G94 [GeForce 9600 GT]
        0631  G94M [GeForce GTS 160M]
        0647  G96M [GeForce 9600M GT]
        0648  G96M [GeForce 9600M GS]
        0649  G96M [GeForce 9600M GT]
+               1043 202d  GeForce GT 220M
        064a  G96M [GeForce 9700M GT]
        064b  G96M [GeForce 9500M G]
        064c  G96M [GeForce 9650M GT]
        064e  G96 [GeForce 9600 GT / 9800 GT]
        0651  G96M [GeForce G 110M]
        0652  G96M [GeForce GT 130M]
+               152d 0850  GeForce GT 240M LE
        0653  G96M [GeForce GT 120M]
        0654  G96M [GeForce GT 220M]
+               1043 14a2  GeForce GT 320M
+               1043 14d2  GeForce GT 320M
        0655  G96 [GeForce GT 120]
        0656  G96 [GeForce 9650 S]
        0658  G96GL [Quadro FX 380]
        06e6  G98 [GeForce G 100]
        06e7  G98 [GeForce 9300 SE]
        06e8  G98M [GeForce 9200M GS]
+               103c 360b  GeForce 9200M GE
        06e9  G98M [GeForce 9300M GS]
                1043 19b2  U6V laptop
        06ea  G98M [Quadro NVS 150M]
        07fe  GeForce 7100/nForce 630i USB
                1019 297a  MCP73PVT-SM
                1afa 7150  JW-IN7150-HD
+       0840  C77 [GeForce 8200M]
        0844  C77 [GeForce 9100M G]
        0845  C77 [GeForce 8200M G]
        0846  C77 [GeForce 9200]
        0864  C79 [GeForce 9300]
        0865  C79 [GeForce 9300/ION]
        0866  C79 [GeForce 9400M G]
+               106b 00b1  GeForce 9400M
        0867  C79 [GeForce 9400]
                106b 00ad  iMac 9,1
        0868  C79 [nForce 760i SLI]
        086c  C79 [GeForce 9300 / nForce 730i]
        086d  C79 [GeForce 9200]
        086e  C79 [GeForce 9100M G]
-       086f  C79 [GeForce 9200M G]
+       086f  MCP79 [GeForce 8200M G]
        0870  C79 [GeForce 9400M]
        0871  C79 [GeForce 9200]
        0872  C79 [GeForce G102M]
                19da a123  IONITX-F-E
        087e  ION LE VGA
        087f  ION LE VGA
+       08a0  MCP89 [GeForce 320M]
        08a2  MCP89 [GeForce 320M]
        08a3  MCP89 [GeForce 320M]
        08a4  MCP89 [GeForce 320M]
+       08a5  MCP89 [GeForce 320M]
        0a20  GT216 [GeForce GT 220]
                1043 8311  ENGT220/DI/1GD3(LP)/V2
        0a21  GT216M [GeForce GT 330M]
        0a72  GT218M [GeForce 310M]
        0a73  GT218M [GeForce 305M]
        0a74  GT218M [GeForce G210M]
+               1b0a 903a  GeForce G210
        0a75  GT218M [GeForce 310M]
        0a76  GT218 [ION 2]
        0a78  GT218GL [Quadro FX 380 LP]
                1462 ac81  GeForce 315M
                1462 ac82  GeForce 405
                1462 ae33  GeForce 405
+               1642 3980  GeForce 405
                17aa 3950  GeForce 405M
                17aa 397d  GeForce 405M
                1b0a 2091  GeForce 315M
+               1b0a 90b4  GeForce 405
                1bfd 0003  GeForce 405
                1bfd 8006  GeForce 405
                1bfd 8007  GeForce 315M
                1043 82e8  M3N72-D
                1849 0ad4  K10N78FullHD-hSLI R3.0 AHCI Controller
        0ad8  MCP78S [GeForce 8200] SATA Controller (RAID mode)
-       0be2  High Definition Audio Controller
+       0be2  GT216 HDMI Audio Controller
                1043 8311  ENGT220/DI/1GD3(LP)/V2
        0be3  High Definition Audio Controller
                1028 040b  Latitude E6510
        0de3  GF108M [GeForce GT 635M]
        0de4  GF108 [GeForce GT 520]
        0de5  GF108 [GeForce GT 530]
+       0de7  GF108 [GeForce GT 610]
        0de8  GF108M [GeForce GT 620M]
        0de9  GF108M [GeForce GT 630M]
+               1025 0692  GeForce GT 620M
+               1025 0725  GeForce GT 620M
+               1025 0728  GeForce GT 620M
+               1025 072b  GeForce GT 620M
+               1025 072e  GeForce GT 620M
+               1025 0753  GeForce GT 620M
+               1025 0754  GeForce GT 620M
+               17aa 3977  GeForce GT 640M LE
+               1b0a 2210  GeForce GT 635M
        0dea  GF108M [GeForce 610M]
                17aa 365a  GeForce 615
                17aa 365b  GeForce 615
        0df2  GF108M [GeForce GT 435M]
        0df3  GF108M [GeForce GT 420M]
        0df4  GF108M [GeForce GT 540M]
+               152d 0952  GeForce GT 630M
+               152d 0953  GeForce GT 630M
        0df5  GF108M [GeForce GT 525M]
        0df6  GF108M [GeForce GT 550M]
        0df7  GF108M [GeForce GT 520M]
        0e0c  GF114 HDMI Audio Controller
        0e1a  GK110 HDMI Audio
        0e1b  GK107 HDMI Audio Controller
+               103c 197b  ZBook 15
                1043 8428  GTX650-DC-1GD5
        0e22  GF104 [GeForce GTX 460]
                1462 2322  N460GTX Cyclone 1GD5/OC
        0fc6  GK107 [GeForce GTX 650]
                1043 8428  GTX650-DC-1GD5
        0fcd  GK107M [GeForce GT 755M]
+       0fce  GK107M [GeForce GT 640M LE]
        0fd1  GK107M [GeForce GT 650M]
                1043 1597  GeForce GT 650M
                1043 15a7  GeForce GT 650M
        0fdf  GK107M [GeForce GT 740M]
        0fe0  GK107M [GeForce GTX 660M Mac Edition]
        0fe1  GK107M [GeForce GT 730M]
+       0fe2  GK107M [GeForce GT 745M]
        0fe3  GK107M [GeForce GT 745M]
                17aa 3675  GeForce GT 745A
        0fe4  GK107M [GeForce GT 750M]
 # GRID K1 USM
        0fe7  GK107GL [GRID K100 vGPU]
                10de 101e  GRID K100
+       0fe9  GK107M [GeForce GT 750M Mac Edition]
+       0fea  GK107M [GeForce GT 755M Mac Edition]
        0fef  GK107GL [GRID K340]
        0ff1  GK107 [NVS 1000]
        0ff2  GK107GL [GRID K1]
        0ff5  GK107GL [GRID K1 Tesla USM]
        0ff6  GK107GLM [Quadro K1100M]
+               103c 197b  ZBook 15
 # GRID K1 Quadro USM
        0ff7  GK107GL [GRID K140Q vGPU]
                10de 1037  GRID K140Q
        0fff  GK107GL [Quadro 410]
        1003  GK110 [GeForce GTX Titan LE]
        1004  GK110 [GeForce GTX 780]
+               3842 0784  GK110B [GeForce GTX 780 SC w/ ACX Cooler]
+               3842 1784  GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler]
+               3842 1788  GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler]
        1005  GK110 [GeForce GTX Titan]
                1043 8451  GTXTITAN-6GD5
 # Reference Model
                3842 2794  GeForce GTX Titan SC Hydro Copper
 # 06G-P4-2795-KR
                3842 2795  GeForce GTX Titan SC Hydro Copper Signature
+       1007  GK110 [GeForce GTX 780 Rev. 2]
+       1008  GK110 [GeForce GTX 780 Ti Rev. 2]
+       100a  GK110B [GeForce GTX 780 Ti]
+       100c  GK110B [GeForce GTX Titan Black]
        101f  GK110GL [Tesla K20]
        1020  GK110GL [Tesla K20X]
        1021  GK110GL [Tesla K20Xm]
        1022  GK110GL [Tesla K20c]
+       1023  GK110BGL [Tesla K40m]
+       1024  GK110BGL [Tesla K40c]
        1026  GK110GL [Tesla K20s]
+       1027  GK110BGL [Tesla K40st]
        1028  GK110GL [Tesla K20m]
+       1029  GK110BGL [Tesla K40s]
        103a  GK110GL [Quadro K6000]
        1040  GF119 [GeForce GT 520]
        1042  GF119 [GeForce 510]
 # 1024MB with passive cooling (heatsink)
                10b0 104a  Gainward GeForce GT 610
        104b  GF119 [GeForce GT 625 OEM]
+       104c  GF119 [GeForce GT 705]
        1050  GF119M [GeForce GT 520M]
        1051  GF119M [GeForce GT 520MX]
        1052  GF119M [GeForce GT 520M]
        1056  GF119M [NVS 4200M]
        1057  GF119M [Quadro NVS 4200M]
        1058  GF119M [GeForce 610M]
+               103c 2aed  GeForce 610
+               103c 2af1  GeForce 610
                1043 10ac  GeForce GT 610M
                1043 10bc  GeForce GT 610M
                1043 1652  GeForce GT 610M
+               17aa 367a  GeForce 610M
+               17aa 3682  GeForce 800A
+               17aa 3687  GeForce 800A
+               17aa 3692  GeForce 705A
+               17aa 3695  GeForce 800A
+               17aa a117  GeForce 610M
+       1059  GF119M [GeForce 610M]
        105a  GF119M [GeForce 610M]
                1043 2111  GeForce GT 610M
                1043 2112  GeForce GT 610M
        105b  GF119M [GeForce 705M]
                103c 2afb  GeForce 705A
+               17aa 309d  GeForce 705A
+               17aa 30b1  GeForce 800A
+               17aa 36a1  GeForce 800A
        107c  GF119 [NVS 315]
        107d  GF119 [NVS 310]
        1080  GF110 [GeForce GTX 580]
        1091  GF110GL [Tesla M2090]
                10de 088e  Tesla X2090
                10de 0891  Tesla X2090
+               10de 0974  Tesla X2090
+               10de 098d  Tesla X2090
        1094  GF110GL [Tesla M2075]
                10de 0888  Tesla M2075
        1096  GF110GL [Tesla C2050 / C2075]
        10c3  GT218 [GeForce 8400 GS Rev. 3]
        10c5  GT218 [GeForce 405]
        10d8  GT218 [NVS 300]
-       1140  GF117M [GeForce 610M/710M / GT 620M/625M/630M/720M]
+       1140  GF117M [GeForce 610M/710M/820M / GT 620M/625M/630M/720M]
                1025 0600  GeForce GT 620M
                1025 0606  GeForce GT 620M
                1025 064a  GeForce GT 620M
                1028 054e  GeForce GT 630M
                1028 0554  GeForce GT 620M
                1028 0557  GeForce GT 620M
+               1028 0562  GeForce GT 625M
                1028 0565  GeForce GT 630M
                1028 0568  GeForce GT 630M
                1028 0590  GeForce GT 630M
                1028 05b1  GeForce GT 625M
                1028 05b3  GeForce GT 625M
                1028 05da  GeForce GT 630M
+               1028 05de  GeForce GT 720M
+               1028 05e0  GeForce GT 720M
                1028 05e8  GeForce GT 630M
                1028 05f4  GeForce GT 720M
                103c 18ef  GeForce GT 630M
                1043 124d  GeForce GT 720M
                1043 126d  GeForce GT 720M
                1043 131d  GeForce GT 720M
+               1043 13fd  GeForce GT 720M
                1043 14c7  GeForce GT 720M
                1043 1507  GeForce GT 620M
+               1043 15ad  GeForce 820M
+               1043 15ed  GeForce 820M
+               1043 160d  GeForce 820M
+               1043 163d  GeForce 820M
+               1043 166d  GeForce 820M
+               1043 16cd  GeForce 820M
+               1043 16dd  GeForce 820M
+               1043 170d  GeForce 820M
                1043 2132  GeForce GT 620M
                1043 2136  NVS 5200M
                1043 21ba  GeForce GT 720M
                1043 221a  GeForce GT 720M
                1043 223a  GeForce GT 710M
                1043 224a  GeForce GT 710M
+               1043 227a  GeForce 820M
+               1043 228a  GeForce 820M
                1043 8595  GeForce GT 720M
+               1072 152d  GeForce GT 720M
                10cf 17f5  GeForce GT 720M
                1179 fa01  GeForce 710M
                1179 fa02  GeForce 710M
                144d c652  GeForce GT 620M
                144d c709  GeForce 710M
                144d c711  GeForce 710M
+               144d c736  GeForce 710M
                1462 10b8  GeForce GT 710M
                1462 10e9  GeForce GT 720M
+               1462 1116  GeForce 820M
                1462 aa33  GeForce 720M
                1462 aaa2  GeForce GT 720M
+               1462 aaa3  GeForce 820M
                1462 ae71  GeForce GT 720M
                152d 0926  GeForce 620M
                152d 0982  GeForce GT 630M
                152d 0983  GeForce GT 630M
+               152d 1012  GeForce 710M
                152d 1030  GeForce GT 630M
                152d 1055  GeForce 710M
+               152d 1067  GeForce GT 720M
+               152d 1072  GeForce GT 720M
                17aa 2200  NVS 5200M
+               17aa 2213  GeForce GT 720M
+               17aa 2220  GeForce GT 720M
+               17aa 309c  GeForce GT 720A
+               17aa 30b4  GeForce 820A
                17aa 3656  GeForce GT 620M
+               17aa 365a  GeForce 705M
+               17aa 365e  GeForce 800M
+               17aa 366c  GeForce 800M
+               17aa 3685  GeForce 800M
+               17aa 3686  GeForce 800M
+               17aa 3687  GeForce 705A
+               17aa 3696  GeForce 820A
+               17aa 369b  GeForce 820A
+               17aa 369c  GeForce 820A
+               17aa 369d  GeForce 820A
+               17aa 369e  GeForce 820A
                17aa 3800  GeForce GT 720M
                17aa 3801  GeForce GT 720M
                17aa 3802  GeForce GT 720M
                17aa 3912  GeForce 720M
                17aa 3977  GeForce GT 720M
                17aa 3983  GeForce 610M
+               17aa 5001  GeForce 610M
                17aa 5003  GeForce GT 720M
                17aa 5005  GeForce 705M
                17aa 500d  GeForce GT 620M
                17aa 502d  GeForce 710M
                17aa 502e  GeForce GT 720M
                17aa 502f  GeForce GT 720M
+               17aa 503e  GeForce 710M
+               17aa 503f  GeForce 820M
                1854 0177  GeForce 710M
                1854 0180  GeForce 710M
+               1854 0190  GeForce GT 720M
+               1854 0192  GeForce GT 720M
                1b0a 20dd  GeForce GT 620M
                1b0a 20df  GeForce GT 620M
+               1b0a 2202  GeForce GT 720M
        1180  GK104 [GeForce GTX 680]
+               1043 83f1  GTX680-DC2-2GD5
                3842 3682  GeForce GTX 680 Mac Edition
        1182  GK104 [GeForce GTX 760 Ti]
        1183  GK104 [GeForce GTX 660 Ti]
        118e  GK104 [GeForce GTX 760 OEM]
        118f  GK104GL [Tesla K10]
        1193  GK104 [GeForce GTX 760 Ti OEM]
-       119d  GK104M [GeForce GTX 775M]
-       119e  GK104M [GeForce GTX 780M]
+       1195  GK104 [GeForce GTX 660 Rev. 2]
+       1198  GK104M [GeForce GTX 880M]
+       1199  GK104M [GeForce GTX 870M]
+       119a  GK104M [GeForce GTX 860M]
+       119d  GK104M [GeForce GTX 775M Mac Edition]
+       119e  GK104M [GeForce GTX 780M Mac Edition]
        119f  GK104M [GeForce GTX 780M]
        11a0  GK104M [GeForce GTX 680M]
        11a1  GK104M [GeForce GTX 670MX]
        11e1  GK106M [GeForce GTX 765M]
        11e2  GK106M [GeForce GTX 765M]
        11e3  GK106M [GeForce GTX 760M]
+               17aa 3683  GeForce GTX 760A
        11fa  GK106GL [Quadro K4000]
        11fc  GK106GLM [Quadro K2100M]
        1200  GF114 [GeForce GTX 560 Ti]
                1462 10cc  GeForce GT 635M
        1251  GF116M [GeForce GT 560M]
        1280  GK208 [GeForce GT 635]
+       1281  GK208 [GeForce GT 710]
        1282  GK208 [GeForce GT 640 Rev. 2]
        1284  GK208 [GeForce GT 630 Rev. 2]
+       1286  GK208 [GeForce GT 720]
        1290  GK208M [GeForce GT 730M]
                103c 2afa  GeForce GT 730A
                103c 2b04  GeForce GT 730A
        1293  GK208M [GeForce GT 730M]
        1294  GK208M [GeForce GT 740M]
        1295  GK208M [GeForce 710M]
+       1296  GK208M [GeForce 825M]
        1298  GK208M [GeForce GT 720M]
        12a0  GK208
        12b9  GK208GLM [Quadro K610M]
        12ba  GK208GLM [Quadro K510M]
+       1340  GM108M [GeForce 830M]
+       1341  GM108M [GeForce 840M]
+               17aa 3697  GeForce 840A
+               17aa 3699  GeForce 840A
+               17aa 369c  GeForce 840A
+       1380  GM107 [GeForce GTX 750 Ti]
+       1381  GM107 [GeForce GTX 750]
+       1382  GM107 [GeForce GTX 745]
+       1390  GM107M [GeForce 845M]
+       1391  GM107M [GeForce GTX 850M]
+               17aa 3697  GeForce GTX 850A
+               17aa a125  GeForce GTX 850A
+       1392  GM107M [GeForce GTX 860M]
+       1393  GM107M [GeForce 840M]
 10df  Emulex Corporation
        0720  OneConnect NIC (Skyhawk)
+               17aa 1056  ThinkServer OCm14102-UX-L AnyFabric
+               17aa 1057  ThinkServer OCm14104-UX-L AnyFabric
+               17aa 1059  ThinkServer OCm14104-UT-L AnyFabric
        0722  OneConnect iSCSI Initiator (Skyhawk)
        0723  OneConnect iSCSI Initiator + Target (Skyhawk)
        0724  OneConnect FCoE Initiator (Skyhawk)
        e200  Lancer-X: LightPulse Fibre Channel Host Adapter
        e208  LightPulse 16Gb Fibre Channel Host Adapter (Lancer-VF)
        e220  OneConnect NIC (Lancer)
+               17aa 1054  ThinkServer LPm16002B-M6-L AnyFabric
+               17aa 1055  ThinkServer LPm16004B-M8-L AnyFabric
        e240  OneConnect iSCSI Initiator (Lancer)
        e260  OneConnect FCoE Initiator (Lancer)
        e268  OneConnect 10Gb FCoE Converged Network Adapter (Lancer-VF)
        0101  3GA
        8111  Twist3 Frame Grabber
 10ec  Realtek Semiconductor Co., Ltd.
-       0139  Zonet Zen3200
-       0880  Realtek 880 High Definition Audio
-       0883  Realtek 883 High Definition Audio
-       0885  Realtek 885 High Definition Audio
-       0888  Realtek 888 High Definition Audio
-       0892  Realtek 892 High Definition Audio
+       0139  RTL-8139/8139C/8139C+ Ethernet Controller
+       5208  RTS5208 PCI Express Card Reader
        5209  RTS5209 PCI Express Card Reader
+       5227  RTS5227 PCI Express Card Reader
+               17aa 220e  ThinkPad T440p
+               17aa 2214  ThinkPad X240
        5229  RTS5229 PCI Express Card Reader
                1025 0813  Aspire R7-571
-       5288  Barossa PCI Express Card Reader
+               103c 194e  ProBook 455 G1 Notebook
+       5249  RTS5249 PCI Express Card Reader
+               103c 1909  ZBook 15
+       5288  RTS5288 PCI Express Card Reader
        8029  RTL-8029(AS)
                10b8 2011  EZ-Card (SMC1208)
                10ec 8029  RTL-8029(AS)
                1113 1208  EN1208
                1186 0300  DE-528
                1259 2400  AT-2400
-               1af4 1100  Qemu virtual machine
+               1af4 1100  QEMU Virtual Machine
        8129  RTL-8129
                10ec 8129  RT8129 Fast Ethernet Adapter
                11ec 8129  RTL8111/8168 PCIe Gigabit Ethernet (misconfigured)
                1179 ff64  RTL8102E PCI-E Fast Ethernet NIC
        8138  RT8139 (B/C) Cardbus Fast Ethernet Adapter
                10ec 8138  RT8139 (B/C) Fast Ethernet Adapter
-       8139  RTL-8139/8139C/8139C+
+       8139  RTL-8100/8101L/8139 PCI Fast Ethernet Adapter
                0357 000a  TTP-Monitoring Card V2.0
                1025 005a  TravelMate 290
                1025 8920  ALN-325
                1043 8109  P5P800-MX Mainboard
                1071 8160  MIM2000
                10bd 0320  EP-320X-R
+               10ec 8139  RTL-8100/8101L/8139 PCI Fast Ethernet Adapter
                10f7 8338  Panasonic CF-Y5 laptop
-               1113 ec01  FNC-0107TX
+               1113 ec01  LevelOne FNC-0107TX/FNC-0109TX
                1186 1300  DFE-538TX
                1186 1320  SN5200
                1186 8139  DRN-32TX
                1799 5010  F5D5010 CardBus Notebook Network Card
                187e 3303  FN312
                1904 8139  RTL8139D Fast Ethernet Adapter
+               1af4 1100  QEMU Virtual Machine
                2646 0001  KNE120TX
                8e2e 7000  KF-230TX
                8e2e 7100  KF-230TX/2
                1462 236c  945P Neo3-F motherboard
        8168  RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
                1019 8168  RTL8111/8168 PCI Express Gigabit Ethernet controller
+               1028 0283  Vostro 220
                1028 04b2  Vostro 3350
                1028 04da  Vostro 3750
                103c 1611  Pavilion DM1Z-3000
+               103c 1950  ProBook 450/455
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 11f5  A6J-Q008
                1043 16d5  U6V/U31J laptop
                1043 81aa  P5B
                1458 e000  Motherboard
                1462 238c  Onboard RTL8111b on MSI P965 Platinum Mainboard
                1462 368c  K9AG Neo2
+               1462 4180  Wind PC MS-7418
                1462 7522  X58 Pro-E
                1775 11cc  CC11/CL11
                1849 8168  Motherboard (one of many)
        8174  RTL8192SE Wireless LAN Controller
        8176  RTL8188CE 802.11b/g/n WiFi Adapter
                1a3b 1139  AW-NE139H Half-size Mini PCIe Card
-       8177  RTL8188CE 802.11b/g/n WiFi Adapter
-       8178  RTL8188CE 802.11b/g/n WiFi Adapter
+       8177  RTL8191CE PCIe Wireless Network Adapter
+       8178  RTL8192CE PCIe Wireless Network Adapter
        8179  RTL8188EE Wireless Network Adapter
        8180  RTL8180L 802.11b MAC
                1385 4700  MA521 802.11b Wireless PC Card
                1737 0019  WPC11v4 802.11b Wireless-B Notebook Adapter
        8185  RTL-8185 IEEE 802.11a/b/g Wireless LAN Controller
-       8190  RTL8190 802.11n Wireless LAN
-       8191  RTL8188CE 802.11b/g/n WiFi Adapter
+       818b  RTL8192EE PCIe Wireless Network Adapter
+       8190  RTL8190 802.11n PCI Wireless Network Adapter
+       8191  RTL8192CE PCIe Wireless Network Adapter
        8192  RTL8192E/RTL8192SE Wireless LAN Controller
        8193  RTL8192DE Wireless LAN Controller
        8197  SmartLAN56 56K Modem
        8199  RTL8187SE Wireless LAN Controller
                1462 6894  MN54G2 / MS-6894 Wireless Mini PCIe Card
        8723  RTL8723AE PCIe Wireless Network Adapter
+       8812  RTL8812AE 802.11ac PCIe Wireless Network Adapter
+       8813  RTL8813AE 802.11ac PCIe Wireless Network Adapter
+       8821  RTL8821AE 802.11ac PCIe Wireless Network Adapter
+       b723  RTL8723BE PCIe Wireless Network Adapter
 10ed  Ascii Corporation
        7310  V7310
 10ee  Xilinx Corporation
                1102 0053  SB0090 Audigy Player/OEM
                1102 0058  SB0090 Audigy Player/OEM
                1102 1002  SB Audigy2 Platinum
+               1102 1003  SB0350 Audigy 2
                1102 1007  SB0240 Audigy 2 Platinum 6.1
                1102 1009  SB Audigy2 OEM HP
                1102 2001  SB Audigy 2 ZS Platinum Pro
        1740  RocketRAID 1740
        1742  RocketRAID 1742
        2210  RocketRAID 2210 SATA-II Controller
+               11ab 11ab  88SX6042
        2300  RocketRAID 230x 4 Port SATA-II Controller
        2310  RocketRAID 2310 4 Port SATA-II Controller
        2320  RocketRAID 2320 SATA-II Controller
        0409  VX855/VX875 Host Bridge: Host Control
        0410  VX900 Host Bridge: Host Control
        0415  VT6415 PATA IDE Host Controller
-               1043 838f  M5A88-V EVO
+               1043 838f  Motherboard
        0501  VT8501 [Apollo MVP4]
        0505  VT82C505
 # Shares chip with :0576. The VT82C576M has :1571 instead of :0561.
 # probably all K7VT2/4*/6
                1849 3038  K7VT series Motherboards
                19da a179  ZBOX nano VD01
+               1af4 1100  QEMU Virtual Machine
        3040  VT82C586B ACPI
        3043  VT86C100A [Rhine]
                10bd 0000  VT86C100A Fast Ethernet Adapter
        3230  K8M890CE/K8N890CE [Chrome 9]
        3238  K8T890 Host Bridge
        3249  VT6421 IDE/SATA Controller
+               1106 3249  VT6421 IDE/SATA Controller
        324a  CX700/VX700 PCI to PCI Bridge
        324b  CX700/VX700 Host Bridge
        324e  CX700/VX700 Internal Module Bus
        013d  P1690Plus
 1109  Cogent Data Technologies, Inc.
        1400  EM110TX [EX110TX]
-110a  Siemens Nixdorf AG
+110a  Siemens AG
        0002  Pirahna 2-port
        0005  Tulip controller, power management, switch extender
        0006  FSC PINC (I/O-APIC)
 # Superfastcom-PCI (Commtech, Inc.) or DSCC4 WAN Adapter
        2102  DSCC4 PEB/PEF 20534 DMA Supported Serial Communication Controller with 4 Channels
        2104  Eicon Diva 2.02 compatible passive ISDN card
-       3141  SIMATIC NET CP 5611 (Profibus Adapter)
-       3142  SIMATIC NET CP 5613A1 (Profibus Adapter)
+       3141  SIMATIC NET CP 5611 / 5621
+       3142  SIMATIC NET CP 5613 / 5614
+       3143  SIMATIC NET CP 1613
        4021  SIMATIC NET CP 5512 (Profibus and MPI Cardbus Adapter)
-       4029  SIMATIC NET CP 5613A2 (Profibus Adapter)
+       4029  SIMATIC NET CP 5613 A2
+               110a 4029  SIMATIC NET CP 5613 A2
+               110a c029  SIMATIC NET CP 5614 A2
        4035  SIMATIC NET CP 1613 A2
+       4036  SIMATIC NET CP 1616
+       4038  SIMATIC NET CP 1604
+       4069  SIMATIC NET CP 5623
+               110a 4069  SIMATIC NET CP 5623
+               110a c069  SIMATIC NET CP 5624
+       407c  SIMATIC NET CP 5612
+       407d  SIMATIC NET CP 5613 A3
+       407e  SIMATIC NET CP 5622
+       4083  SIMATIC NET CP 5614 A3
+       4084  SIMATIC NET CP 1626
        4942  FPGA I-Bus Tracer for MBD
        6120  SZB6120
 110b  Chromatic Research Inc.
                14c0 1212  LifeView FlyTV Platinum Mini2
                153b 1160  Cinergy 250 PCI TV
                153b 1162  Terratec Cinergy 400 mobile
+               17de 7256  PlusTV All In One PI610 card
                17de 7350  ATSC 110 Digital / Analog HDTV Tuner
                17de 7352  ATSC 115 Digital / Analog HDTV Tuner
                185b c100  VideoMate TV
                5ace 6193  Behold TV M6 Extra
                5ace 6290  Behold TV H6
                5ace 7090  Behold TV A7
+               5ace 7150  Behold TV H75
+               5ace 7151  Behold TV H75
                5ace 7190  Behold TV H7
+               5ace 7191  Behold TV H7
+               5ace 7290  Behold TV T7
+               5ace 7591  Behold TV X7
                5ace 7595  Behold TV X7
        7134  SAA7134/SAA7135HL Video Broadcast Decoder
                0000 4036  Behold TV 403
                1894 0023  TVStation DVB-C plus
        7160  SAA7160
                1458 9009  E8000 DVB-T/Analog TV/FM tuner
+               1461 1455  AVerTV Hybrid Speedy PCI-E (H788)
        7162  SAA7162
                11bd 0101  Pinnacle PCTV 7010iX TV Card
        7164  SAA7164
                0070 89a1  WinTV HVR-2200
        7231  SAA7231
                5ace 8000  Behold TV H8
+               5ace 8001  Behold TV H8
+               5ace 8050  Behold TV H85
+               5ace 8051  Behold TV H85
                5ace 8100  Behold TV A8
+               5ace 8101  Behold TV A8
+               5ace 8150  Behold TV A85
+               5ace 8151  Behold TV A85
+               5ace 8201  Behold TV T8
        9730  SAA9730 Integrated Multimedia and Peripheral Controller
                1131 0000  Integrated Multimedia and Peripheral Controller
 1132  Mitel Corp.
        0041  VIC PCIe Downstream Port
        0042  VIC Management Controller
                1137 0047  VIC P81E PCIe Management Controller
+               1137 0085  VIC 1225 PCIe Management Controller
+               1137 00cd  VIC 1285 PCIe Management Controller
+               1137 00ce  VIC 1225T PCIe Management Controller
        0043  VIC Ethernet NIC
                1137 0047  VIC P81E PCIe Ethernet NIC
                1137 0048  VIC M81KR Mezzanine Ethernet NIC
                1137 004f  VIC 1280 Mezzanine Ethernet NIC
                1137 0084  VIC 1240 MLOM Ethernet NIC
                1137 0085  VIC 1225 PCIe Ethernet NIC
+               1137 00cd  VIC 1285 PCIe Ethernet NIC
+               1137 00ce  VIC 1225T PCIe Ethernet NIC
        0044  VIC Ethernet NIC Dynamic
                1137 0047  VIC P81E PCIe Ethernet NIC Dynamic
                1137 0048  VIC M81KR Mezzanine Ethernet NIC Dynamic
                1137 004f  VIC 1280 Mezzanine Ethernet NIC Dynamic
                1137 0084  VIC 1240 MLOM Ethernet NIC Dynamic
                1137 0085  VIC 1225 PCIe Ethernet NIC Dynamic
+               1137 00cd  VIC 1285 PCIe Ethernet NIC Dynamic
+               1137 00ce  VIC 1225T PCIe Ethernet NIC Dynamic
        0045  VIC FCoE HBA
                1137 0047  VIC P81E PCIe FCoE HBA
                1137 0048  VIC M81KR Mezzanine FCoE HBA
                1137 004f  VIC 1280 Mezzanine FCoE HBA
+               1137 0084  VIC 1240 MLOM FCoE HBA
+               1137 0085  VIC 1225 PCIe FCoE HBA
+               1137 00cd  VIC 1285 PCIe FCoE HBA
+               1137 00ce  VIC 1225T PCIe FCoE HBA
        004e  VIC 82 PCIe Upstream Port
        0071  VIC SR-IOV VF
-       0084  VIC 1240 MLOM FCoE HBA
-       0085  VIC 1225 PCIe FCOE HBA
        00cf  VIC Userspace NIC
 1138  Ziatech Corporation
        8905  8905 [STD 32 Bridge]
                144d c005  X10 Laptop
                144d c00c  P30/P35 notebook
                14ef 0220  PCD-RP-220S
-               17aa 201c  ThinkPad X60s
+               17aa 201c  ThinkPad X60/X60s
                17aa 20c4  ThinkPad T61
                17aa 20c6  ThinkPad R61
        0477  RL5c477
                1043 1757  M2400N laptop
                144d c005  X10 Laptop
                144d c00c  P30/P35 notebook
-               17aa 201e  ThinkPad X60s
+               17aa 201e  ThinkPad X60/X60s
        0554  R5C554
        0575  R5C575 SD Bus Host Adapter
        0576  R5C576 SD Bus Host Adapter
                1043 1967  ASUS V6800V
                10f7 8338  Panasonic CF-Y5 laptop
                144d c018  X20 IV
-               17aa 201d  ThinkPad X60s
+               17aa 201d  ThinkPad X60/X60s
                17aa 20c7  ThinkPad T61
                17aa 20c8  ThinkPad W500
        0832  R5C832 IEEE 1394 Controller
                1025 0121  Aspire 5920G
                1028 01d7  XPS M1210
                1028 01f3  Inspiron 1420
+               1028 024d  Latitude E4300
                103c 30b5  Presario V3242AU
                103c 30b7  Presario V6133CL
                103c 30c1  Compaq 6910p
        2a41  88W8366 [TopDog] 802.11n Wireless
        2a42  88W8366 [TopDog] 802.11n Wireless
        2a43  88W8366 [TopDog] 802.11n Wireless
+       2a55  88W8864 [Avastar] 802.11ac Wireless
        2b36  88W8764 [Avastar] 802.11n Wireless
        4101  OLPC Cafe Controller Secure Digital Controller
        4320  88E8001 Gigabit Ethernet Controller
        5803  USS-344S USB Controller
        5811  FW322/323 [TrueFire] 1394a Controller
                103c 2a34  Pavilion a1677c
+               103c 2a6f  Asus IPIBL-LB Motherboard
                103c 2a9e  Pavilion p6310f
                1043 8294  LSI FW322/323 IEEE 1394a FireWire Controller
                8086 524c  D865PERL mainboard
        7375  PM7375 [LASAR-155 ATM SAR]
        7384  PM7384 [FREEDM - 84P672 Frm Engine & Datalink Mgr]
        8000  PM8000  [SPC - SAS Protocol Controller]
+       8032  ATTO Celerity FC8xEN
+               117c 003b  Celerity FC-82EN Fibre Channel Adapter
+               117c 003c  Celerity FC-84EN Fibre Channel Adapter
 11f9  I-Cube Inc
 11fa  Kasan Electronics Company, Ltd.
 11fb  Datel Inc
        8330  OZ600 MS/xD Controller
                1028 04a3  Precision M4600
        8331  O2 Flash Memory Card
+       8520  SD/MMC Card Reader Controller
 1218  Hybricon Corp.
 1219  First Virtual Corporation
 121a  3Dfx Interactive, Inc.
        0002  DirecPC
 1274  Ensoniq
        1171  ES1373 [AudioPCI] (also Creative Labs CT5803)
-       1371  ES1371 [AudioPCI-97]
+       1371  ES1371 / Creative Labs CT2518 [AudioPCI-97]
                0e11 0024  AudioPCI on Motherboard Compaq Deskpro
                0e11 b1a7  ES1371, ES1373 AudioPCI
                1033 80ac  ES1371, ES1373 AudioPCI
                1042 1854  Tazer
                107b 8054  Tabor2
-               1274 1371  Creative Sound Blaster AudioPCI64V, AudioPCI128
+               1274 1371  AudioPCI 64V/128 / Creative Sound Blaster CT4810
                1274 8001  CT4751 board
                1462 6470  ES1371, ES1373 AudioPCI On Motherboard MS-6147 1.1A
                1462 6560  ES1371, ES1373 AudioPCI On Motherboard MS-6156 1.10
                13f6 ffff  CMI8787-HG2PCI
                14c3 1710  HiFier Fantasia
                14c3 1711  HiFier Serenade
+               14c3 1713  HiFier Serenade III
                1a58 0910  Barracuda AC-1
                415a 5431  X-Meridian 7.1
                5431 017a  X-Meridian 7.1 2G
        5012  T560-CR Unified Wire Ethernet Controller
        5013  T580-CR Unified Wire Ethernet Controller
        5014  T580-LP-SO-CR Unified Wire Ethernet Controller
+       5015  T502-BT Unified Wire Ethernet Controller
        5080  T540-5080 Unified Wire Ethernet Controller
        5081  T540-5081 Unified Wire Ethernet Controller
+       5083  T540-5083 Unified Wire Ethernet Controller
+       5084  T580-5084 Unified Wire Ethernet Controller
+       5085  T580-5085 Unified Wire Ethernet Controller
        5401  T520-CR Unified Wire Ethernet Controller
        5402  T522-CR Unified Wire Ethernet Controller
        5403  T540-CR Unified Wire Ethernet Controller
        5412  T560-CR Unified Wire Ethernet Controller
        5413  T580-CR Unified Wire Ethernet Controller
        5414  T580-LP-SO-CR Unified Wire Ethernet Controller
+       5415  T502-BT Unified Wire Ethernet Controller
        5480  T540-5080 Unified Wire Ethernet Controller
        5481  T540-5081 Unified Wire Ethernet Controller
+       5483  T540-5083 Unified Wire Ethernet Controller
+       5484  T580-5084 Unified Wire Ethernet Controller
+       5485  T580-5085 Unified Wire Ethernet Controller
        5501  T520-CR Unified Wire Storage Controller
        5502  T522-CR Unified Wire Storage Controller
        5503  T540-CR Unified Wire Storage Controller
        5512  T560-CR Unified Wire Storage Controller
        5513  T580-CR Unified Wire Storage Controller
        5514  T580-LP-SO-CR Unified Wire Storage Controller
+       5515  T502-BT Unified Wire Storage Controller
        5580  T540-5080 Unified Wire Storage Controller
        5581  T540-5081 Unified Wire Storage Controller
+       5583  T540-5083 Unified Wire Storage Controller
+       5584  T580-5084 Unified Wire Storage Controller
+       5585  T580-5085 Unified Wire Storage Controller
        5601  T520-CR Unified Wire Storage Controller
        5602  T522-CR Unified Wire Storage Controller
        5603  T540-CR Unified Wire Storage Controller
        5612  T560-CR Unified Wire Storage Controller
        5613  T580-CR Unified Wire Storage Controller
        5614  T580-LP-SO-CR Unified Wire Storage Controller
+       5615  T502-BT Unified Wire Storage Controller
        5680  T540-5080 Unified Wire Storage Controller
        5681  T540-5081 Unified Wire Storage Controller
+       5683  T540-5083 Unified Wire Storage Controller
+       5684  T580-5084 Unified Wire Storage Controller
+       5685  T580-5085 Unified Wire Storage Controller
        5701  T520-CR Unified Wire Ethernet Controller
        5702  T522-CR Unified Wire Ethernet Controller
        5703  T540-CR Unified Wire Ethernet Controller
        5712  T560-CR Unified Wire Ethernet Controller
        5713  T580-CR Unified Wire Ethernet Controller
        5714  T580-LP-SO-CR Unified Wire Ethernet Controller
+       5715  T502-BT Unified Wire Ethernet Controller
        5780  T540-5080 Unified Wire Ethernet Controller
        5781  T540-5081 Unified Wire Ethernet Controller
+       5783  T540-5083 Unified Wire Ethernet Controller
+       5784  T580-5084 Unified Wire Ethernet Controller
+       5785  T580-5085 Unified Wire Ethernet Controller
        5801  T520-CR Unified Wire Ethernet Controller
        5802  T522-CR Unified Wire Ethernet Controller
        5803  T540-CR Unified Wire Ethernet Controller
        5812  T560-CR Unified Wire Ethernet Controller
        5813  T580-CR Unified Wire Ethernet Controller
        5814  T580-LP-SO-CR Unified Wire Ethernet Controller
+       5815  T502-BT Unified Wire Ethernet Controller
        5880  T540-5080 Unified Wire Ethernet Controller
        5881  T540-5081 Unified Wire Ethernet Controller
+       5883  T540-5083 Unified Wire Ethernet Controller
+       5884  T580-5084 Unified Wire Ethernet Controller
+       5885  T580-5085 Unified Wire Ethernet Controller
        a000  PE10K Unified Wire Ethernet Controller
 1426  Storage Technology Corp.
 1427  Better On-Line Solutions
 144b  Verint Systems Inc.
 144c  Catalina Research Inc
 144d  Samsung Electronics Co Ltd
+       1600  Apple PCIe SSD
+       a800  XP941 PCIe SSD
+       a820  NVMe SSD Controller 171X
+               1028 1f95  Express Flash NVMe XS1715 SSD 400GB
+               1028 1f96  Express Flash NVMe XS1715 SSD 800GB
+               1028 1f97  Express Flash NVMe XS1715 SSD 1600GB
 144e  OLITEC
 144f  Askey Computer Corp.
 1450  Octave Communications Ind.
        a836  M115 DVB-T, PAL/SECAM/NTSC Tuner
        e836  M115S Hybrid Analog/DVB PAL/SECAM/NTSC Tuner
        f436  AVerTV Hybrid+FM
-1462  Micro-Star International Co., Ltd.
+1462  Micro-Star International Co., Ltd. [MSI]
 1463  Fast Corporation
 1464  Interactive Circuits & Systems Ltd
 1465  GN NETTEST Telecom DIV.
 1467  DIGICOM SPA
 1468  AMBIT Microsystem Corp.
 1469  Cleveland Motion Controls
-146a  IFR
+# formerly IFR.
+146a  Aeroflex
+# 1.5 GHz to 3.0 GHz x 1Hz
+       3010  3010 RF Synthesizer
+       3a11  3011A PXI RF Synthesizer
 146b  Parascan Technologies Ltd
 146c  Ruby Tech Corp.
        1430  FE-1430TX Fast Ethernet PCI Adapter
                103c 1240  Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)
 14c2  DTK Computer
 14c3  MEDIATEK Corp.
+       7630  MT7630e 802.11bgn Wireless Network Adapter
 14c4  IWASAKI Information Systems Co Ltd
 14c5  Automation Products AB
 14c6  Data Race Inc
        168d  NetXtreme II BCM57840 10/20 Gigabit Ethernet
        168e  NetXtreme II BCM57810 10 Gigabit Ethernet
                103c 1798  Flex-10 10Gb 2-port 530FLB Adapter [Meru]
+               103c 17a5  HP Flex-10 10Gb 2-port 530M Adapter
+               103c 18d3  HP Ethernet 10Gb 2-port 530T Adapter
+               103c 1930  HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter
+               103c 1931  HP StoreFabric CN1100R Dual Port Converged Network Adapter
+               103c 1932  HP FlexFabric 10Gb 2-port 534FLB Adapter
+               103c 1933  HP FlexFabric 10Gb 2-port 534M Adapter
+               103c 193a  HP FlexFabric 10Gb 2-port 533FLR-T Adapter
+               103c 3382  HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter
+               103c 339d  HP Ethernet 10Gb 2-port 530SFP+ Adapter
        1690  NetXtreme BCM57760 Gigabit Ethernet PCIe
        1691  NetLink BCM57788 Gigabit Ethernet PCIe
                1028 04aa  XPS 8300
        16a0  NetLink BCM5785 Fast Ethernet
        16a1  BCM57840 NetXtreme II 10 Gigabit Ethernet
        16a2  BCM57840 NetXtreme II 10/20-Gigabit Ethernet
+               103c 1916  HP FlexFabric 20Gb 2-port 630FLB Adapter
+               103c 1917  HP FlexFabric 20Gb 2-port 630M Adapter
        16a4  BCM57840 NetXtreme II Ethernet Multi Function
+               103c 1916  HP NPAR 20Gb 2-port 630FLB Adapter
+               103c 1917  HP NPAR 20Gb 2-port 630M Adapter
 # The Broadcom 57800 device has two 1Gig ports and two 10Gig ports. The subsystem information can be used to differentiate.
        16a5  NetXtreme II BCM57800 1/10 Gigabit Ethernet Multi Function
                1028 1f5c  NetXtreme II BCM57800 10-Gigabit Ethernet Multi Function
                103c 703b  NC373i Integrated Multifunction Gigabit Server Adapter
                103c 703d  NC373F PCI Express Multifunction Gigabit Server Adapter
        16ad  NetXtreme II BCM57840 10/20 Gigabit Ethernet Virtual Function
+               103c 1916  HP FlexFabric 20Gb 2-port 630FLB Adapter
+               103c 1917  HP FlexFabric 20Gb 2-port 630M Adapter
        16ae  NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function
+               103c 1798  HP NPAR 10Gb 2-port 530FLB Adapter
+               103c 17a5  HP NPAR 10Gb 2-port 530M Adapter
+               103c 18d3  HP NPAR 10Gb 2-port 530T Adapter
+               103c 1930  HP NPAR 10Gb 2-port 534FLR-SFP+ Adapter
+               103c 1931  HP NPAR CN1100R Dual Port Converged Network Adapter
+               103c 1932  HP NPAR 10Gb 2-port 534FLB Adapter
+               103c 1933  HP NPAR 10Gb 2-port 534M Adapter
+               103c 193a  HP NPAR 10Gb 2-port 533FLR-T Adapter
+               103c 3382  HP NPAR 10Gb 2-port 530FLR-SFP+ Adapter
+               103c 339d  HP NPAR 10Gb 2-port 530SFP+ Adapter
        16af  NetXtreme II BCM57810 10 Gigabit Ethernet Virtual Function
+               103c 1798  HP Flex-10 10Gb 2-port 530FLB Adapter
+               103c 17a5  HP Flex-10 10Gb 2-port 530M Adapter
+               103c 18d3  HP Ethernet 10Gb 2-port 530T Adapter
+               103c 1930  HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter
+               103c 1931  HP StoreFabric CN1100R Dual Port Converged Network Adapter
+               103c 1932  HP FlexFabric 10Gb 2-port 534FLB Adapter
+               103c 1933  HP FlexFabric 10Gb 2-port 534M Adapter
+               103c 193a  HP FlexFabric 10Gb 2-port 533FLR-T Adapter
+               103c 3382  HP Ethernet 10Gb 2-port 530FLR-SFP+ Adapter
+               103c 339d  HP Ethernet 10Gb 2-port 530SFP+ Adapter
        16b0  NetXtreme BCM57761 Gigabit Ethernet PCIe
        16b1  NetLink BCM57781 Gigabit Ethernet PCIe
                1849 96b1  Z77 Extreme4 motherboard
        07a0  PCI Express Root Port
        07b0  VMXNET3 Ethernet Controller
        07c0  PVSCSI SCSI Controller
+       07e0  SATA AHCI controller
        0801  Virtual Machine Interface
                15ad 0800  Hypervisor ROM Interface
        1977  HD Audio Controller
 15bc  Agilent Technologies
        0100  HPFC-5600 Tachyon DX2+ FC
        0103  QX4 PCI Express quad 4-gigabit Fibre Channel controller
-       0105  Celerity FC-42XS Fibre Channel Adapter
+       0105  Celerity FC-44XS/FC-42XS/FC-41XS/FC-44ES/FC-42ES/FC-41ES
                117c 0022  Celerity FC-42XS Fibre Channel Adapter
+               117c 0025  Celerity FC-44ES Fibre Channel Adapter
+               117c 0026  Celerity FC-42ES Fibre Channel Adapter
        1100  E8001-66442 PCI Express CIC
        2922  64 Bit, 133MHz PCI-X Exerciser & Protocol Checker
        2928  64 Bit, 66MHz PCI Exerciser & Analyzer
                103c 1838  AR9485/HB125 802.11bgn 1×1 Wi-Fi Adapter
        0033  AR9580 Wireless Network Adapter
        0034  AR9462 Wireless Network Adapter
+               1a56 2003  Killer Wireless-N 1202 Half-size Mini PCIe Card
        0036  QCA9565 / AR9565 Wireless Network Adapter
+       0037  AR9485 Wireless Network Adapter
+# Also used as Gigabyte GC-WB150 on a PCIe-to-mini-PCIe converter
+               1a3b 2100  AW-NB100H 802.11n Wireless Mini PCIe Card
        003c  QCA988x 802.11ac Wireless Network Adapter
        0207  AR5210 Wireless Network Adapter [AR5000 802.11a]
        1014  AR5212 802.11abg NIC
                1014 058a  ThinkPad 11a/b/g Wireless LAN Mini Express Adapter (AR5BXB6)
        9013  AR5002X Wireless Network Adapter
        ff19  AR5006X Wireless Network Adapter
+       ff1b  AR2425 Wireless Network Adapter [AR5007EG 802.11bg]
        ff1c  AR5008 Wireless Network Adapter
        ff1d  AR922x Wireless Network Adapter
 # Found in "AVM Fritz!Box FON WLAN 7270v3"
        0100  NSP2000-SSL crypto accelerator
 170c  YottaYotta Inc.
 1719  EZChip Technologies
+       1000  NPA Access Network Processor Family
 # Seems to be a 2nd ID for Vitesse Semiconductor
 1725  Vitesse Semiconductor
        7174  VSC7174 PCI/PCI-X Serial ATA Host Bus Controller
        6811  TW6816 multimedia video controller
        6812  TW6816 multimedia video controller
        6813  TW6816 multimedia video controller
+# port 5 of 8
+       6814  TW6816 multimedia video controller
+# port 6 of 8
+       6815  TW6816 multimedia video controller
+# port 7 of 8
+       6816  TW6816 multimedia video controller
+# channel 8 of 8
+       6817  TW6816 multimedia video controller
 1799  Belkin
        6001  F5D6001 Wireless PCI Card [Realtek RTL8180]
        6020  F5D6020 v3000 Wireless PCMCIA Card [Realtek RTL8180]
        3091  RT3091 Wireless 802.11n 1T/2R PCIe
        3092  RT3092 Wireless 802.11n 2T/2R PCIe
        3290  RT3290 Wireless 802.11n 1T/1R PCIe
+               103c 18ec  Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter
        3298  RT3290 Bluetooth
+               103c 18ec  Ralink RT3290LE 802.11bgn 1x1 Wi-Fi and Bluetooth 4.0 Combo Adapter
        3592  RT3592 Wireless 802.11abgn 2T/2R PCIe
+       359f  RT3592 PCIe Wireless Network Adapter
        5360  RT5360 Wireless 802.11n 1T/1R
                1186 3c05  DWA-525 Wireless N 150 Desktop Adapter (rev.A2)
                20f4 703a  TEW-703PI N150 Wireless PCI Adapter
        5390  RT5390 Wireless 802.11n 1T/1R PCIe
                103c 1636  U98Z077.00 Half-size Mini PCIe Card
+       5392  RT5392 PCIe Wireless Network Adapter
        539f  RT5390 [802.11 b/g/n 1T1R G-band PCI Express Single Chip]
                103c 1637  Pavilion DM1Z-3000 PCIe wireless card
+       5592  RT5592 PCIe Wireless Network Adapter
        e932  RT2560F 802.11 b/g PCI
 1815  Devolo AG
 1820  InfiniCon Systems Inc.
                1924 7104  SFN5161T-R4 10GBASE-T Server Adapter
                1924 7904  SFN5151T-R4 10GBASE-T Server Adapter
        0903  SFC9120
+               1014 04cc  SFN7122F-R2 2x10GbE SFP+ Flareon Ultra
                1924 8002  SFN7122F-R1 SFP+ Server Adapter
+               1924 8003  SFN7x41Q-R1 Flareon Ultra 7000 Series 10/40G Adapter
                1924 8006  SFN7022F-R1 SFP+ Server Adapter
+               1924 8007  SFN7322F-R2 Precision Time SFP+ Server Adapter
+               1924 8009  SFN7x22F-R2 Flareon Ultra 7000 Series 10G Adapter
+               1924 800a  SFN7x02F-R2 Flareon 7000 Series 10G Adapter
+       0923  SFC9140
+               1924 800b  SFN7x42Q-R1 Flareon Ultra 7000 Series 10/40G Adapter
        1803  SFC9020 Virtual Function [Solarstorm]
        1813  SFL9021 Virtual Function [Solarstorm]
        6703  SFC4000 rev A iSCSI/Onload [Solarstorm]
        0364  AHA364-PCIe
        0367  AHA367-PCIe
        0370  AHA370-PCIe
+       3641  AHA3641
+       3642  AHA3642
 1942  ClearSpeed Technology plc
        e511  Advance X620 accelerator card
        e521  Advance e620 accelerator card
        0082  MPC8347E TBGA
        0083  MPC8347 TBGA
        0084  MPC8347E PBGA
+               110a 4074  SIMATIC NET CP 1628
        0085  MPC8347 PBGA
+               110a 4046  SIMATIC NET CP 1623
        0086  MPC8343E
        0087  MPC8343
        00b4  MPC8315E
+       00b6  MPC8314E
+               1a56 1101  Killer Xeno Pro Gigabit Ethernet Controller
        00c2  MPC8379E
        00c3  MPC8379
        00c4  MPC8378E
        7010  MPC8641 PCI Host Bridge
        7011  MPC8641D PCI Host Bridge
        7018  MPC8610
+       c006  MPC8308
+               1a56 1201  Killer E2100 Gigabit Ethernet Controller
 1958  Faster Technology, LLC.
 1959  PA Semi, Inc
        a000  PA6T Core
        2048  Attansic L2 Fast Ethernet
        2060  AR8152 v1.1 Fast Ethernet
        2062  AR8152 v2.0 Fast Ethernet
-       e091  Killer E2200 Gigabit Ethernet Controller
+# E2200, E2201, E2205
+       e091  Killer E220x Gigabit Ethernet Controller
 196a  Sensory Networks Inc.
        0101  NodalCore C-1000 Content Classification Accelerator
        0102  NodalCore C-2000 Content Classification Accelerator
                103c 3340  NC552SFP 2-port 10Gb Server Adapter
                103c 3341  NC552m 10Gb 2-port FlexFabric Converged Network Adapter
                103c 3345  NC553m 10Gb 2-port FlexFabric Converged Network Adapter
+               103c 337b  NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter
        0712  OneConnect 10Gb iSCSI Initiator (be3)
        0714  OneConnect 10Gb FCoE Initiator (be3)
                103c 3315  NC553i 10Gb 2-port FlexFabric Converged Network Adapter
+               103c 337b  NC554FLB 10Gb 2-port FlexFabric Converged Network Adapter
 19a8  DAQDATA GmbH
 19ac  Kasten Chase Applied Research
        0001  ACA2400 Crypto Accelerator
 1a1e  3Leaf Systems, Inc.
 1a22  Ambric Inc.
 1a29  Fortinet, Inc.
+       4338  CP8 Content Processor ASIC
 1a2b  Ascom AG
        0000  GESP v1.2
        0001  GESP v1.3
        0001  TILE64 processor
        0002  TILEPro processor
        0200  TILE-Gx processor
-       2000  TILE-Gx PCI Express Bridge
+       0201  TILE-Gx Processor Virtual Function
+       2000  TILE-Gx PCI Express Root Port
 1a4a  SLAC National Accelerator Lab PPA-REG
        1000  MCOR Power Supply Controller
        1010  AMC EVR - Stockholm Timing Board
        4005  Accelerated Virtual Video Adapter
        4006  Memory Ballooning Controller
 1ab9  Espia Srl
+1ac8  Aeroflex Gaisler
 1acc  Point of View BV
 1ad7  Spectracom Corporation
        8000  TSync-PCIe Time Code Processor
        1004  Virtio SCSI
        1005  Virtio RNG
        1009  Virtio filesystem
+       1010  Virtio GPU
+       1012  Virtio input device
+       1110  Inter-VM shared memory
+               1af4 1100  QEMU Virtual Machine
 1af5  Netezza Corp.
 1afa  J & W Electronics Co., Ltd.
 1b03  Magnum Semiconductor, Inc,
        0612  ASM1062 Serial ATA Controller
                1849 0612  Motherboard
        1042  ASM1042 SuperSpeed USB Host Controller
+               1043 8488  P8B WS Motherboard
                1849 1042  Motherboard
        1080  ASM1083/1085 PCIe to PCI Bridge
                1849 1080  Motherboard
 1b2c  Opal-RT Technologies Inc.
 1b36  Red Hat, Inc.
+       0001  QEMU PCI-PCI bridge
+       0002  QEMU PCI 16550A Adapter
+               1af4 1100  QEMU Virtual Machine
+       0003  QEMU PCI Dual-port 16550A Adapter
+               1af4 1100  QEMU Virtual Machine
+       0004  QEMU PCI Quad-port 16550A Adapter
+               1af4 1100  QEMU Virtual Machine
+       0005  QEMU PCI Test Device
+               1af4 1100  QEMU Virtual Machine
+       0100  QXL paravirtual graphic card
+               1af4 1100  QEMU Virtual Machine
 1b37  Signal Processing Devices Sweden AB
        0014  ADQ412
 1b3a  Westar Display Technologies
        9130  88SE9128 PCIe SATA 6 Gb/s RAID controller with HyperDuo
                1043 8438  P8P67 Deluxe Motherboard
        9172  88SE9172 SATA 6Gb/s Controller
+       9178  88SE9170 PCIe SATA 6Gb/s Controller
        917a  88SE9172 SATA III 6Gb/s RAID Controller
+       9183  88SS9183 PCIe SSD Controller
        9192  88SE9172 SATA III 6Gb/s RAID Controller
        91a0  88SE912x SATA 6Gb/s Controller [IDE mode]
        91a4  88SE912x IDE Controller
+       9220  88SE9220 PCIe 2.0 x2 2-port SATA 6 Gb/s RAID Controller
        9230  88SE9230 PCIe SATA 6Gb/s Controller
+       9235  88SE9235 PCIe 2.0 x2 4-port SATA 6 Gb/s Controller
+       9445  88SE9445 PCIe 2.0 x4 4-Port SAS/SATA 6 Gbps RAID Controller
        9480  88SE9480 SAS/SATA 6Gb/s RAID controller
        9485  88SE9485 SAS/SATA 6Gb/s controller
 1b55  NetUP Inc.
        0003  MAX3
        0004  MAX4
 1bf4  VTI Instruments Corporation
+       0001  SentinelEX
 1bfd  EeeTOP
 1c1c  Symphony
        0001  82C101
 1c2c  Fiberblaze
+       000a  Capture
+       000f  SmartNIC
+       00a0  FBC4G Capture 4x1Gb
+       00a1  FBC4XG Capture 4x10Gb
+       00a2  FBC8XG Capture 8x10Gb
+       00a3  FBC2XG Capture 2x10Gb
+       00a4  FBC4XGG3 Capture 4x10Gb
+       00a5  FBC2XLG Capture 2x40Gb
+       00a6  FBC1CG Capture 1x100Gb
 # Used on V120 VME Crate Controller
 1c32  Highland Technology, Inc.
+1c33  Daktronics, Inc
 1c3b  Accensus, LLC
        0200  Telas2
 # http://www.accensusllc.com/accensustelas2.html
 1ce4  Exablaze
        0001  ExaNIC X4
        0002  ExaNIC X2
+1cf7  Subspace Dynamics
 1d44  DPT
        a400  PM2x24/PM3224
 1d5c  Fantasia Trading LLC
        1025  16 photo couple 16 relay Card
        4000  WatchDog Card
 6688  Zycoo Co., Ltd
-       1200  CooVOX TDM Analog Module
+       1200  CooVox TDM Analog Module
        1400  CooVOX TDM GSM Module
        1600  CooVOX TDM E1/T1 Module
        1800  CooVOX TDM BRI Module
                8086 5226  Centrino Advanced-N 6230 ABG
        0100  2nd Generation Core Processor Family DRAM Controller
                1028 04aa  XPS 8300
-               1043 844d  P8P67 Deluxe Motherboard
+               1043 844d  P8P67/P8H67 Series Motherboard
        0101  Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port
                1028 04b2  Vostro 3350
                106b 00dc  MacBookPro8,2 [Core i7, 15", 2011]
        0102  2nd Generation Core Processor Family Integrated Graphics Controller
                1028 04aa  XPS 8300
+               1043 0102  P8H67 Series Motherboard
        0104  2nd Generation Core Processor Family DRAM Controller
                1028 04a3  Precision M4600
                1028 04b2  Vostro 3350
                1849 0150  Motherboard
        0151  Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port
                1043 1477  N56VZ
+               1043 844d  P8 series motherboard
                1043 84ca  P8H77-I Motherboard
+               8086 2010  Server Board S1200BTS
        0152  Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
                1043 84ca  P8H77-I Motherboard
        0153  3rd Gen Core Processor Thermal Subsystem
                1043 1477  N56VZ
                1043 1517  Zenbook Prime UX31A
        0155  Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port
+               8086 2010  Server Board S1200BTS
        0156  3rd Gen Core processor Graphics Controller
        0158  Xeon E3-1200 v2/Ivy Bridge DRAM Controller
+               1043 844d  P8 series motherboard
+               8086 2010  Server Board S1200BTS
        0159  Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port
        015a  Xeon E3-1200 v2/Ivy Bridge Graphics Controller
        015c  Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller
        015d  Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port
+               1043 844d  P8 series motherboard
        015e  Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
        0162  Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
                1849 0162  Motherboard
                1043 1517  Zenbook Prime UX31A
                1043 2103  N56VZ
        016a  Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
+               1043 844d  P8B WS Motherboard
        0172  Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
        0176  3rd Gen Core processor Graphics Controller
        0309  80303 I/O Processor PCI-to-PCI Bridge
        040a  Xeon E3-1200 v3 Processor Integrated Graphics Controller
        0412  Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
        0416  4th Gen Core Processor Integrated Graphics Controller
+               17aa 220e  ThinkPad T440p
        041a  Xeon E3-1200 v3 Processor Integrated Graphics Controller
        0433  Coleto Creek ACC - ME/CPM interface
        0435  Coleto Creek PCIe Endpoint
                8086 0270  Dual Band Wireless-AC 3160
 # Wilkins Peak 1 1x1 80Mhz + BT - lenovo/HP
                8086 8270  Dual Band Wireless AC 3160
+# PowerVR SGX 545
+       08cf  Atom Processor Z2760 Integrated Graphics Controller
+       095a  Wireless 7265
+# Stone Peak 2 AC
+               8086 1010  Dual Band Wireless-AC 7265
+# Stone Peak 2 AGN
+               8086 5000  Dual Band Wireless-N 7265
+# Stone Peak 2 BGN
+               8086 5002  Wireless-N 7265
+# Stone Peak 2 AGN
+               8086 500a  Dual Band Wireless-N 7265
+# Stone Peak 2 AC
+               8086 5010  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 5012  Dual Band Wireless-AC 7265
+# Stone Peak 2 AGN
+               8086 5020  Dual Band Wireless-N 7265
+# Stone Peak 2 AGN
+               8086 502a  Dual Band Wireless-N 7265
+# Maple Peak AC
+               8086 5090  Dual Band Wireless-AC 7265
+# Stone Peak 2 AGN
+               8086 5100  Dual Band Wireless-AC 7265
+# Stone Peak 2 AGN
+               8086 510a  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 5110  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 5112  Dual Band Wireless-AC 7265
+# Maple Peak AC
+               8086 5190  Dual Band Wireless-AC 7265
+# Stone Peak 2 AGN
+               8086 5400  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 5410  Dual Band Wireless-AC 7265
+# Stone Peak 2 AGN
+               8086 5420  Dual Band Wireless-N 7265
+# Maple Peak AC
+               8086 5490  Dual Band Wireless-AC 7265
+# Maple Peak AC
+               8086 5590  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 9010  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 9012  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 9110  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 9112  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 9210  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 9310  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 9410  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 9510  Dual Band Wireless-AC 7265
+       095b  Wireless 7265
+# Stone Peak 2 AGN
+               8086 5200  Dual Band Wireless-N 7265
+# Stone Peak 2 BGN
+               8086 5202  Wireless-N 7265
+# Stone Peak 2 AC
+               8086 5210  Dual Band Wireless-AC 7265
+# Maple Peak AC
+               8086 5290  Dual Band Wireless-AC 7265
+# Stone Peak 2 BGN
+               8086 5302  Dual Band Wireless-AC 7265
+# Stone Peak 2 AC
+               8086 5310  Dual Band Wireless-AC 7265
        0960  80960RP (i960RP) Microprocessor/Bridge
        0962  80960RM (i960RM) Bridge
        0964  80960RP (i960RP) Microprocessor/Bridge
        0a04  Haswell-ULT DRAM Controller
+               17aa 2214  ThinkPad X240
        0a06  Haswell-ULT Integrated Graphics Controller
+       0a0c  Haswell-ULT HD Audio Controller
+               17aa 2214  ThinkPad X240
        0a16  Haswell-ULT Integrated Graphics Controller
+               17aa 2214  ThinkPad X240
        0a22  Haswell-ULT Integrated Graphics Controller
        0a26  Haswell-ULT Integrated Graphics Controller
        0a2a  Haswell-ULT Integrated Graphics Controller
        0c00  4th Gen Core Processor DRAM Controller
        0c01  Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller
        0c04  Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        0c05  Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller
        0c08  Xeon E3-1200 v3 Processor DRAM Controller
        0c09  Xeon E3-1200 v3/4th Gen Core Processor PCI Express x4 Controller
        0c0c  Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller
+               17aa 220e  ThinkPad T440p
        0c46  Atom Processor S1200 PCI Express Root Port 1
        0c47  Atom Processor S1200 PCI Express Root Port 2
        0c48  Atom Processor S1200 PCI Express Root Port 3
        0d16  Crystal Well Integrated Graphics Controller
        0d26  Crystal Well Integrated Graphics Controller
        0d36  Crystal Well Integrated Graphics Controller
-       0e00  Xeon E5 v2/Core i7 DMI2
-       0e01  Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode
-       0e02  Xeon E5 v2/Core i7 PCI Express Root Port 1a
-       0e03  Xeon E5 v2/Core i7 PCI Express Root Port 1b
-       0e04  Xeon E5 v2/Core i7 PCI Express Root Port 2a
-       0e05  Xeon E5 v2/Core i7 PCI Express Root Port 2b
-       0e06  Xeon E5 v2/Core i7 PCI Express Root Port 2c
-       0e07  Xeon E5 v2/Core i7 PCI Express Root Port 2d
-       0e08  Xeon E5 v2/Core i7 PCI Express Root Port 3a
-       0e09  Xeon E5 v2/Core i7 PCI Express Root Port 3b
-       0e0a  Xeon E5 v2/Core i7 PCI Express Root Port 3c
-       0e0b  Xeon E5 v2/Core i7 PCI Express Root Port 3d
-       0e10  Xeon E5 v2/Core i7 IIO Configuration Registers
-       0e13  Xeon E5 v2/Core i7 IIO Configuration Registers
-       0e17  Xeon E5 v2/Core i7 IIO Configuration Registers
-       0e18  Xeon E5 v2/Core i7 IIO Configuration Registers
-       0e1c  Xeon E5 v2/Core i7 IIO Configuration Registers
-       0e1d  Xeon E5 v2/Core i7 R2PCIe
-       0e1e  Xeon E5 v2/Core i7 UBOX Registers
-       0e1f  Xeon E5 v2/Core i7 UBOX Registers
-       0e20  Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0
-       0e21  Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1
-       0e22  Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2
-       0e23  Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3
-       0e24  Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4
-       0e25  Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5
-       0e26  Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6
-       0e27  Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7
-       0e28  Xeon E5 v2/Core i7 VTd/Memory Map/Misc
-       0e29  Xeon E5 v2/Core i7 Memory Hotplug
-       0e2a  Xeon E5 v2/Core i7 IIO RAS
-       0e2c  Xeon E5 v2/Core i7 IOAPIC
-       0e2e  Xeon E5 v2/Core i7 CBDMA
-       0e2f  Xeon E5 v2/Core i7 CBDMA
-       0e30  Xeon E5 v2/Core i7 Home Agent 0
-       0e32  Xeon E5 v2/Core i7 QPI Link 0
-       0e33  Xeon E5 v2/Core i7 QPI Link 1
-       0e34  Xeon E5 v2/Core i7 R2PCIe
-       0e36  Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring
-       0e37  Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring
-       0e38  Xeon E5 v2/Core i7 Home Agent 1
-       0e3a  Xeon E5 v2/Core i7 QPI Link 2
-       0e3e  Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring
-       0e3f  Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring
-       0e40  Xeon E5 v2/Core i7 QPI Link 2
-       0e41  Xeon E5 v2/Core i7 QPI Ring Registers
-       0e43  Xeon E5 v2/Core i7 QPI Link Reut 2
-       0e44  Xeon E5 v2/Core i7 QPI Link Reut 2
-       0e60  Xeon E5 v2/Core i7 Home Agent 1
-       0e68  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers
-       0e6a  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers
-       0e6b  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers
-       0e6c  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers
-       0e6d  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers
-       0e71  Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers
-       0e74  Xeon E5 v2/Core i7 R2PCIe
-       0e75  Xeon E5 v2/Core i7 R2PCIe
-       0e77  Xeon E5 v2/Core i7 QPI Ring Registers
-       0e79  Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers
-       0e7d  Xeon E5 v2/Core i7 UBOX Registers
-       0e7f  Xeon E5 v2/Core i7 QPI Ring Registers
-       0e80  Xeon E5 v2/Core i7 QPI Link 0
-       0e81  Xeon E5 v2/Core i7 QPI Ring Registers
-       0e83  Xeon E5 v2/Core i7 QPI Link Reut 0
-       0e84  Xeon E5 v2/Core i7 QPI Link Reut 0
-       0e87  Xeon E5 v2/Core i7 QPI Registers
-       0e90  Xeon E5 v2/Core i7 QPI Link 1
-       0e93  Xeon E5 v2/Core i7 QPI Link 1
-       0e94  Xeon E5 v2/Core i7 QPI Link Reut 1
-       0ea0  Xeon E5 v2/Core i7 Home Agent 0
-       0ea8  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers
-       0eaa  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers
-       0eab  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers
-       0eac  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers
-       0ead  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers
-       0eae  Xeon E5 v2/Core i7 DDRIO Registers
-       0eaf  Xeon E5 v2/Core i7 DDRIO Registers
-       0eb0  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0
-       0eb1  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1
-       0eb2  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0
-       0eb3  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1
-       0eb4  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2
-       0eb5  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3
-       0eb6  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2
-       0eb7  Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3
-       0ebc  Xeon E5 v2/Core i7 DDRIO Registers
-       0ebe  Xeon E5 v2/Core i7 DDRIO Registers
-       0ebf  Xeon E5 v2/Core i7 DDRIO Registers
-       0ec0  Xeon E5 v2/Core i7 Power Control Unit 0
-       0ec1  Xeon E5 v2/Core i7 Power Control Unit 1
-       0ec2  Xeon E5 v2/Core i7 Power Control Unit 2
-       0ec3  Xeon E5 v2/Core i7 Power Control Unit 3
-       0ec4  Xeon E5 v2/Core i7 Power Control Unit 4
-       0ec8  Xeon E5 v2/Core i7 System Address Decoder
-       0ec9  Xeon E5 v2/Core i7 Broadcast Registers
-       0eca  Xeon E5 v2/Core i7 Broadcast Registers
-       0ed8  Xeon E5 v2/Core i7 DDRIO
-       0ed9  Xeon E5 v2/Core i7 DDRIO
-       0edc  Xeon E5 v2/Core i7 DDRIO
-       0edd  Xeon E5 v2/Core i7 DDRIO
-       0ede  Xeon E5 v2/Core i7 DDRIO
-       0edf  Xeon E5 v2/Core i7 DDRIO
-       0ee0  Xeon E5 v2/Core i7 Unicast Registers
-       0ee1  Xeon E5 v2/Core i7 Unicast Registers
-       0ee2  Xeon E5 v2/Core i7 Unicast Registers
-       0ee3  Xeon E5 v2/Core i7 Unicast Registers
-       0ee4  Xeon E5 v2/Core i7 Unicast Registers
-       0ee5  Xeon E5 v2/Core i7 Unicast Registers
-       0ee6  Xeon E5 v2/Core i7 Unicast Registers
-       0ee7  Xeon E5 v2/Core i7 Unicast Registers
-       0ee8  Xeon E5 v2/Core i7 Unicast Registers
-       0ee9  Xeon E5 v2/Core i7 Unicast Registers
-       0eea  Xeon E5 v2/Core i7 Unicast Registers
-       0eeb  Xeon E5 v2/Core i7 Unicast Registers
-       0eec  Xeon E5 v2/Core i7 Unicast Registers
-       0eed  Xeon E5 v2/Core i7 Unicast Registers
-       0eee  Xeon E5 v2/Core i7 Unicast Registers
-       0ef0  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0
-       0ef1  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1
-       0ef2  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0
-       0ef3  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1
-       0ef4  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2
-       0ef5  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3
-       0ef6  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2
-       0ef7  Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3
-       0ef8  Xeon E5 v2/Core i7 DDRIO
-       0ef9  Xeon E5 v2/Core i7 DDRIO
-       0efa  Xeon E5 v2/Core i7 DDRIO
-       0efb  Xeon E5 v2/Core i7 DDRIO
-       0efc  Xeon E5 v2/Core i7 DDRIO
-       0efd  Xeon E5 v2/Core i7 DDRIO
+       0e00  Xeon E7 v2/Xeon E5 v2/Core i7 DMI2
+       0e01  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port in DMI2 Mode
+       0e02  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1a
+       0e03  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 1b
+       0e04  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2a
+       0e05  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2b
+       0e06  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2c
+       0e07  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 2d
+       0e08  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3a
+       0e09  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3b
+       0e0a  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3c
+       0e0b  Xeon E7 v2/Xeon E5 v2/Core i7 PCI Express Root Port 3d
+       0e10  Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers
+       0e13  Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers
+       0e17  Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers
+       0e18  Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers
+       0e1c  Xeon E7 v2/Xeon E5 v2/Core i7 IIO Configuration Registers
+       0e1d  Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe
+       0e1e  Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers
+       0e1f  Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers
+       0e20  Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 0
+       0e21  Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 1
+       0e22  Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 2
+       0e23  Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 3
+       0e24  Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 4
+       0e25  Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 5
+       0e26  Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 6
+       0e27  Xeon E7 v2/Xeon E5 v2/Core i7 Crystal Beach DMA Channel 7
+       0e28  Xeon E7 v2/Xeon E5 v2/Core i7 VTd/Memory Map/Misc
+       0e29  Xeon E7 v2/Xeon E5 v2/Core i7 Memory Hotplug
+       0e2a  Xeon E7 v2/Xeon E5 v2/Core i7 IIO RAS
+       0e2c  Xeon E7 v2/Xeon E5 v2/Core i7 IOAPIC
+       0e2e  Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA
+       0e2f  Xeon E7 v2/Xeon E5 v2/Core i7 CBDMA
+       0e30  Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0
+       0e32  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0
+       0e33  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1
+       0e34  Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe
+       0e36  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring
+       0e37  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring
+       0e38  Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1
+       0e3a  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2
+       0e3e  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring
+       0e3f  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Performance Ring Monitoring
+       0e40  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 2
+       0e41  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers
+       0e43  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2
+       0e44  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 2
+       0e45  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register
+       0e47  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register
+       0e60  Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 1
+       0e68  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Target Address/Thermal Registers
+       0e6a  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers
+       0e6b  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers
+       0e6c  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers
+       0e6d  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel Target Address Decoder Registers
+       0e71  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 RAS Registers
+       0e74  Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe
+       0e75  Xeon E7 v2/Xeon E5 v2/Core i7 R2PCIe
+       0e77  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers
+       0e79  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 RAS Registers
+       0e7d  Xeon E7 v2/Xeon E5 v2/Core i7 UBOX Registers
+       0e7f  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers
+       0e80  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 0
+       0e81  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Ring Registers
+       0e83  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0
+       0e84  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 0
+       0e85  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register
+       0e87  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Registers
+       0e90  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1
+       0e93  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link 1
+       0e94  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Reut 1
+       0e95  Xeon E7 v2/Xeon E5 v2/Core i7 QPI Link Agent Register
+       0ea0  Xeon E7 v2/Xeon E5 v2/Core i7 Home Agent 0
+       0ea8  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Target Address/Thermal Registers
+       0eaa  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers
+       0eab  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers
+       0eac  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers
+       0ead  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel Target Address Decoder Registers
+       0eae  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers
+       0eaf  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers
+       0eb0  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 0
+       0eb1  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 1
+       0eb2  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 0
+       0eb3  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 1
+       0eb4  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 2
+       0eb5  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 Thermal Control 3
+       0eb6  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 2
+       0eb7  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 1 Channel 0-3 ERROR Registers 3
+       0ebc  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers
+       0ebe  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers
+       0ebf  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO Registers
+       0ec0  Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 0
+       0ec1  Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 1
+       0ec2  Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 2
+       0ec3  Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 3
+       0ec4  Xeon E7 v2/Xeon E5 v2/Core i7 Power Control Unit 4
+       0ec8  Xeon E7 v2/Xeon E5 v2/Core i7 System Address Decoder
+       0ec9  Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers
+       0eca  Xeon E7 v2/Xeon E5 v2/Core i7 Broadcast Registers
+       0ed8  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0ed9  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0edc  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0edd  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0ede  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0edf  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0ee0  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ee1  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ee2  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ee3  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ee4  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ee5  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ee6  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ee7  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ee8  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ee9  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0eea  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0eeb  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0eec  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0eed  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0eee  Xeon E7 v2/Xeon E5 v2/Core i7 Unicast Registers
+       0ef0  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 0
+       0ef1  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 1
+       0ef2  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 0
+       0ef3  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 1
+       0ef4  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 2
+       0ef5  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 Thermal Control 3
+       0ef6  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 2
+       0ef7  Xeon E7 v2/Xeon E5 v2/Core i7 Integrated Memory Controller 0 Channel 0-3 ERROR Registers 3
+       0ef8  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0ef9  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0efa  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0efb  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0efc  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
+       0efd  Xeon E7 v2/Xeon E5 v2/Core i7 DDRIO
        0f00  ValleyView SSA-CUnit
        0f01  ValleyView SSA-CUnit
        0f02  ValleyView SSA-CUnit
                1028 0134  PowerEdge 600SC
                1028 0151  Optiplex GX270
                107b 8920  PRO/1000 MT Desktop Adapter
+               1af4 1100  QEMU Virtual Machine
                8086 001e  PRO/1000 MT Desktop Adapter
                8086 002e  PRO/1000 MT Desktop Adapter
                8086 1376  PRO/1000 GT Desktop Adapter
                1179 0001  PRO/1000 MT Mobile Connection
                8086 101e  PRO/1000 MT Mobile Connection
        1026  82545GM Gigabit Ethernet Controller
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                8086 1000  PRO/1000 MT Server Connection
                8086 1001  PRO/1000 MT Server Adapter
        109a  82573L Gigabit Ethernet Controller
                1179 ff10  PRO/1000 PL
                17aa 2001  ThinkPad T60
-               17aa 207e  ThinkPad X60s
+               17aa 207e  ThinkPad X60/X60s
                8086 109a  PRO/1000 PL Network Connection
                8086 309c  Desktop Board D945GTP
                8086 30a5  Desktop Board D975XBX
        10ce  82567V-2 Gigabit Network Connection
        10d3  82574L Gigabit Network Connection
                103c 3250  NC112T PCI Express single Port Gigabit Server Adapter
+               1043 8369  Motherboard
                10a9 8029  Prism XL Single Port Gigabit Ethernet
                15d9 060a  X7SPA-H/X7SPA-HF Motherboard
+               15d9 060d  C7SIM-Q Motherboard
                8086 0001  Gigabit CT2 Desktop Adapter
+               8086 357a  Server Board S1200BTS
                8086 a01f  Gigabit CT Desktop Adapter
                e4bf 50c1  PC1-GROOVE
                e4bf 50c2  PC2-LIMBO
        10ed  82599 Ethernet Controller Virtual Function
        10ef  82578DM Gigabit Network Connection
                1028 02da  OptiPlex 980
+               15d9 060d  C7SIM-Q Motherboard
        10f0  82578DC Gigabit Network Connection
        10f1  82598EB 10-Gigabit AF Dual Port Network Connection
                8086 a20f  10-Gigabit AF DA Dual Port Server Adapter
                103c 17d3  Ethernet 10Gb 2-port 560SFP+ Adapter
                103c 211b  Ethernet 10Gb 1-port P560FLR-SFP+ Adapter
                103c 2147  Ethernet 10Gb 1-port 561i Adapter
+               103c 2159  Ethernet 10Gb 2-port 562i Adapter
                108e 7b11  Ethernet Server Adapter X520-2
                1734 11a9  10 Gigabit Dual Port Network Connection
+               17aa 1071  ThinkServer X520-2 AnyFabric
                8086 0002  Ethernet Server Adapter X520-DA2
                8086 0003  Ethernet Server Adapter X520-2
                8086 0006  Ethernet Server Adapter X520-1
                172a 0000  AEP SSL Accelerator
        1209  8255xER/82551IT Fast Ethernet Controller
                140b 0610  PMC610 quad Ethernet board
+               1af4 1100  QEMU Virtual Machine
                4c53 1050  CT7 mainboard
                4c53 1051  CE7 mainboard
                4c53 1070  PC6 mainboard
                1668 1100  EtherExpress PRO/100B (TX) (MiniPCI Ethernet+Modem)
                1775 1100  CR11/VR11 Single Board Computer
                1775 ce90  CE9
+               1af4 1100  QEMU Virtual Machine
                4c53 1080  CT8 mainboard
                4c53 10e0  PSL09 PrPMC
                8086 0001  EtherExpress PRO/100B (TX)
        1501  82567V-3 Gigabit Network Connection
        1502  82579LM Gigabit Network Connection
                1028 04a3  Precision M4600
+               8086 357a  Server Board S1200BTS
        1503  82579V Gigabit Network Connection
                1043 849c  P8P67 Deluxe Motherboard
        1507  Ethernet Express Module X520-P2
                108e 7b13  Dual 10GBASE-T LP
        1520  I350 Ethernet Controller Virtual Function
        1521  I350 Gigabit Network Connection
+               1028 0602  Gigabit 2P I350-t LOM
                1028 1f60  Intel GbE 4P I350crNDC
                1028 1f62  Intel GbE 2P I350crNDC
+               1028 ff9a  Gigabit 4P X710/I350 rNDC
                103c 17d1  Ethernet 1Gb 4-port 366FLR Adapter
+               103c 2003  Ethernet 1Gb 2-port 367i Adapter
+               103c 2226  Ethernet 1Gb 1-port 364i Adapter
                103c 337f  Ethernet 1Gb 2-port 361i Adapter
                103c 3380  Ethernet 1Gb 4-port 366i Adapter
                103c 339e  Ethernet 1Gb 2-port 361T Adapter
                108e 7b16  Quad Port GbE PCIe 2.0 ExpressModule, UTP
                108e 7b18  Quad Port GbE PCIe 2.0 Low Profile Adapter, UTP
                10a9 802a  UV2-BaseIO dual-port GbE
+               17aa 1074  ThinkServer I350-T4 AnyFabric
                8086 0001  Ethernet Server Adapter I350-T4
                8086 0002  Ethernet Server Adapter I350-T2
                8086 00a1  Ethernet Server Adapter I350-T4
                8086 00a3  Ethernet Server Adapter I350-F4
                8086 00a4  Ethernet Server Adapter I350-F2
        1523  I350 Gigabit Backplane Connection
+               1028 1f9b  Gigabit 4P I350 bNDC
                103c 1784  Ethernet 1Gb 2-port 361FLB Adapter
                103c 18d1  Ethernet 1Gb 2-port 361FLB Adapter
+               103c 1989  Ethernet 1Gb 2-port 363i Adapter
                103c 339f  Ethernet 1Gb 4-port 366M Adapter
                8086 1f52  1GbE 4P I350 Mezz
        1524  I350 Gigabit Connection
        1528  Ethernet Controller 10-Gigabit X540-AT2
                1028 1f61  Ethernet 10G 4P X540/I350 rNDC
                103c 192d  561FLR-T 2-port 10Gb Ethernet Adapter
+               103c 2004  Ethernet 10Gb 2-port 561i Adapter
                103c 211a  Ethernet 10Gb 2-port 561T Adapter
                108e 7b14  Sun Dual Port 10 GbE PCIe 2.0 ExpressModule, Base-T
                108e 7b15  Sun Dual Port 10 GbE PCIe 2.0 Low Profile Adapter, Base-T
                1137 00bf  Ethernet Converged Network Adapter X540-T2
+               17aa 1073  ThinkServer X540-T2 AnyFabric
                8086 0001  Ethernet Converged Network Adapter X540-T2
                8086 0002  Ethernet Converged Network Adapter X540-T1
                8086 001a  Ethernet Converged Network Adapter X540-T2
        152a  82599 10 Gigabit Dual Port Backplane Connection with FCoE
        1533  I210 Gigabit Network Connection
                103c 0003  Ethernet Server Adapter I210-T1
+               17aa 1100  ThinkServer Ethernet Server Adapter
                8086 0001  Ethernet Server Adapter I210-T1
                8086 0002  Ethernet Server Adapter I210-T1
        1534  I210 Gigabit Network Connection
        1536  I210 Gigabit Fiber Network Connection
        1537  I210 Gigabit Backplane Connection
-       1538  I210 Gigabit Network Connection
        1539  I211 Gigabit Network Connection
        153a  Ethernet Connection I217-LM
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        153b  Ethernet Connection I217-V
        1547  DSL3510 Thunderbolt Port [Cactus Ridge]
        1549  DSL3510 Thunderbolt Controller [Cactus Ridge]
                8086 011a  Ethernet Converged Network Adapter X520-4
                8086 011b  Ethernet Converged Network Adapter X520-4
                8086 011c  Ethernet Converged Network Adapter X520-4
+       154c  XL710 X710 Virtual Function
        154d  Ethernet 10G 2P X520 Adapter
                8086 7b11  10GbE 2P X520 Adapter
        1557  82599 10 Gigabit Network Connection
                8086 011b  Ethernet Converged Network Adapter X520-Q1
        1559  Ethernet Connection I218-V
        155a  Ethernet Connection I218-LM
+               17aa 2214  ThinkPad X240
        155c  Ethernet Server Bypass Adapter
                8086 0001  Ethernet Server Bypass Adapter X540-T2
        155d  Ethernet Server Bypass Adapter
                8086 0001  Ethernet Server Bypass Adapter X520-SR2
                8086 0002  Ethernet Server Bypass Adapter X520-LR2
        1560  Ethernet Controller X540
+       156f  Ethernet Connection I219-LM
+       1570  Ethernet Connection I219-V
+       1571  XL710 X710 Virtual Function
+       1572  Ethernet 10G 2P X710 Adapter
+               1028 1f99  Ethernet 10G 4P X710/I350 rNDC
+               8086 0001  Ethernet Converged Network Adapter X710-4
+               8086 0002  Ethernet Converged Network Adapter X710-4
+               8086 0004  Ethernet Converged Network Adapter X710-4
+               8086 0005  Ethernet 10G 4P X710 Adapter
+               8086 0006  Ethernet 10G2P X710 Adapter
+               8086 0007  Ethernet Converged Network Adapter X710-2
+               8086 0008  Ethernet Converged Network Adapter X710-2
        157b  I210 Gigabit Network Connection
+       157c  I210 Gigabit Backplane Connection
+       1580  Ethernet Controller XL710 for 40Gbe backplane
+       1581  Ethernet Controller X710 for 10Gbe backplane
+               1028 1f98  Ethernet 10G 4P X710-k bNDC
+       1583  Ethernet Controller XL710 for 40GbE QSFP+
+               8086 0001  Ethernet Converged Network Adapter XL710-Q2
+               8086 0002  Ethernet Converged Network Adapter XL710-Q2
+               8086 0003  Ethernet I/O Module XL710-Q2
+       1584  Ethernet Controller XL710 for 40GbE QSFP+
+               8086 0001  Ethernet Converged Network Adapter XL710-Q1
+               8086 0002  Ethernet Converged Network Adapter XL710-Q1
+               8086 0003  Ethernet I/O Module XL710-Q1
+       1585  Ethernet Controller XL710 for 10GbE QSFP+
        15a0  Ethernet Connection (2) I218-LM
        15a1  Ethernet Connection (2) I218-V
        15a2  Ethernet Connection (3) I218-LM
        15a3  Ethernet Connection (3) I218-V
+       1600  Broadwell-U Host Bridge -OPI
+       1601  Broadwell-U PCI Express x16 Controller
+       1602  Broadwell-U Integrated Graphics
+       1603  Broadwell-U Camarillo Device
+       1604  Broadwell-U Host Bridge -OPI
+       1605  Broadwell-U PCI Express x8 Controller
+       1606  Broadwell-U Integrated Graphics
+       1607  Broadwell-U CHAPS Device
+       1608  Broadwell-U Host Bridge -OPI
+       1609  Broadwell-U x4 PCIe
+       160a  Broadwell-U Integrated Graphics
+       160b  Broadwell-U Integrated Graphics
+       160c  Broadwell-U Audio Controller
+       160d  Broadwell-U Integrated Graphics
+       160e  Broadwell-U Integrated Graphics
+       160f  Broadwell-U SoftSKU
+       1610  Broadwell-U Host Bridge - DMI
+       1612  Broadwell-U Integrated Graphics
+       1614  Broadwell-U Host Bridge - DMI
+       1616  Broadwell-U Integrated Graphics
+       1618  Broadwell-U Host Bridge - DMI
+       161a  Broadwell-U Integrated Graphics
+       161b  Broadwell-U Integrated Graphics
+       161d  Broadwell-U Integrated Graphics
+       161e  Broadwell-U Integrated Graphics
+       1622  Broadwell-U Integrated Graphics
+       1626  Broadwell-U Integrated Graphics
+       162a  Broadwell-U Integrated Graphics
+       162b  Broadwell-U Integrated Graphics
+       162d  Broadwell-U Integrated Graphics
+       162e  Broadwell-U Integrated Graphics
+       1632  Broadwell-U Integrated Graphics
+       1636  Broadwell-U Integrated Graphics
+       163a  Broadwell-U Integrated Graphics
+       163b  Broadwell-U Integrated Graphics
+       163d  Broadwell-U Integrated Graphics
+       163e  Broadwell-U Integrated Graphics
        1960  80960RP (i960RP) Microprocessor
                101e 0431  MegaRAID 431 RAID Controller
                101e 0438  MegaRAID 438 Ultra2 LVD RAID Controller
        1c01  6 Series/C200 Series Chipset Family 4 port SATA IDE Controller
        1c02  6 Series/C200 Series Chipset Family SATA AHCI Controller
                1028 04aa  XPS 8300
-               1043 844d  P8P67 Deluxe Motherboard
+               1043 844d  P8 series motherboard
+               8086 7270  Server Board S1200BTS
        1c03  6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller
                1028 04a3  Precision M4600
                1028 04b2  Vostro 3350
        1c10  6 Series/C200 Series Chipset Family PCI Express Root Port 1
                1028 04aa  XPS 8300
                1028 04da  Vostro 3750
-               8086 7270  Apple MacBookPro8,2 [Core i7, 15", 2011]
+               1043 844d  P8 series motherboard
+               8086 7270  Server Board S1200BTS / Apple MacBook Pro 8,1/8,2
        1c12  6 Series/C200 Series Chipset Family PCI Express Root Port 2
                1028 04aa  XPS 8300
                8086 7270  Apple MacBookPro8,2 [Core i7, 15", 2011]
                1028 04aa  XPS 8300
        1c18  6 Series/C200 Series Chipset Family PCI Express Root Port 5
                1028 04da  Vostro 3750
+               8086 7270  Server Board S1200BTS
        1c1a  6 Series/C200 Series Chipset Family PCI Express Root Port 6
                1028 04da  Vostro 3750
+               1043 844d  P8 series motherboard
        1c1c  6 Series/C200 Series Chipset Family PCI Express Root Port 7
        1c1e  6 Series/C200 Series Chipset Family PCI Express Root Port 8
+               1043 844d  P8 series motherboard
        1c20  6 Series/C200 Series Chipset Family High Definition Audio Controller
                1028 0490  Alienware M17x R3
                1028 04a3  Precision M4600
                1028 04b2  Vostro 3350
                1028 04da  Vostro 3750
                1043 8418  P8P67 Deluxe Motherboard
+               1043 841b  P8H67 Series Motherboard
 # Realtek ALC888 audio codec
                8086 2008  DQ67SW board
                8086 7270  Apple MacBookPro8,2 [Core i7, 15", 2011]
                1028 04aa  XPS 8300
                1028 04b2  Vostro 3350
                1028 04da  Vostro 3750
-               1043 844d  P8P67 Deluxe Motherboard
-               8086 7270  Apple MacBookPro8,2 [Core i7, 15", 2011]
+               1043 844d  P8 series motherboard
+               8086 7270  Server Board S1200BTS / Apple MacBook Pro 8,1/8,2
        1c24  6 Series/C200 Series Chipset Family Thermal Management Controller
        1c25  6 Series/C200 Series Chipset Family DMI to PCI Bridge
        1c26  6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1
                1028 04aa  XPS 8300
                1028 04b2  Vostro 3350
                1028 04da  Vostro 3750
-               1043 844d  P8P67 Deluxe Motherboard
-               8086 7270  Apple MacBookPro8,2 [Core i7, 15", 2011]
+               1043 844d  P8 series motherboard
+               8086 7270  Server Board S1200BTS / Apple MacBook Pro 8,1/8,2
        1c27  6 Series/C200 Series Chipset Family USB Universal Host Controller #1
                8086 7270  Apple MacBookPro8,2 [Core i7, 15", 2011]
        1c2c  6 Series/C200 Series Chipset Family USB Universal Host Controller #5
                1028 04aa  XPS 8300
                1028 04b2  Vostro 3350
                1028 04da  Vostro 3750
-               1043 844d  P8P67 Deluxe Motherboard
-               8086 7270  Apple MacBookPro8,2 [Core i7, 15", 2011]
+               1043 844d  P8 series motherboard
+               8086 7270  Server Board S1200BTS / Apple MacBook Pro 8,1/8,2
        1c33  6 Series/C200 Series Chipset Family LAN Controller
        1c35  6 Series/C200 Series Chipset Family VECI Controller
        1c3a  6 Series/C200 Series Chipset Family MEI Controller #1
                1028 04aa  XPS 8300
                1028 04b2  Vostro 3350
                1028 04da  Vostro 3750
-               1043 844d  P8P67 Deluxe Motherboard
+               1043 844d  P8 series motherboard
                8086 7270  Apple MacBookPro8,2 [Core i7, 15", 2011]
        1c3b  6 Series/C200 Series Chipset Family MEI Controller #2
        1c3c  6 Series/C200 Series Chipset Family IDE-r Controller
                8086 7270  Apple MacBookPro8,2 [Core i7, 15", 2011]
        1c4a  H67 Express Chipset Family LPC Controller
                1028 04aa  XPS 8300
+               1043 844d  P8H67 Series Motherboard
        1c4b  HM67 Express Chipset Family LPC Controller
                1028 04b2  Vostro 3350
                1028 04da  Vostro 3750
        1c50  B65 Express Chipset Family LPC Controller
        1c51  6 Series/C200 Series Chipset Family LPC Controller
        1c52  C202 Chipset Family LPC Controller
+               8086 7270  Server Board S1200BTS
        1c53  6 Series/C200 Series Chipset Family LPC Controller
        1c54  C204 Chipset Family LPC Controller
        1c55  6 Series/C200 Series Chipset Family LPC Controller
        1c56  C206 Chipset Family LPC Controller
+               1043 844d  P8B WS Motherboard
        1c57  6 Series/C200 Series Chipset Family LPC Controller
        1c58  Upgraded B65 Express Chipset Family LPC Controller
        1c59  Upgraded HM67 Express Chipset Family LPC Controller
                1043 84ca  P8H77-I Motherboard
                1849 1e2d  Motherboard
        1e31  7 Series/C210 Series Chipset Family USB xHCI Host Controller
+               103c 17ab  ProBook 6570b
                1043 1477  N56VZ
                1043 1517  Zenbook Prime UX31A
                1043 84ca  P8H77-I Motherboard
        1f3e  Atom processor C2000 RAID SATA3 Controller
        1f3f  Atom processor C2000 RAID SATA3 Controller
        1f40  Ethernet Connection I354 1.0 GbE Backplane
-               1028 10f1  Ethernet Connection I354 1.0 GbE Backplane
+               1028 05f1  Ethernet Connection I354 1.0 GbE Backplane
        1f41  Ethernet Connection I354
        1f42  Atom processor C2000 GbE
        1f44  Atom processor C2000 GbE Virtual Function
        2250  Xeon Phi coprocessor 5100 series
        225c  Xeon Phi coprocessor SE10/7120 series
        225d  Xeon Phi coprocessor 3120 series 
+       225e  Xeon Phi coprocessor 31S1
        2310  DH89xxCC LPC Controller
        2323  DH89xxCC 4 Port SATA AHCI Controller
        2330  DH89xxCC SMBus Controller
                11d4 0048  SoundMAX Integrated Digital Audio
                11d4 5340  SoundMAX Integrated Digital Audio
                1734 1025  Activy 3xx
+               1af4 1100  QEMU Virtual Machine
        2416  82801AA AC'97 Modem Controller
        2418  82801AA PCI Bridge
        2420  82801AB ISA Bridge (LPC)
                1179 ff01  PRO/100 VE Network Connection
                1186 7801  EtherExpress PRO/100 VE
                144d 2602  HomePNA 1M CNR
+               1af4 1100  QEMU Virtual Machine
                8086 3010  EtherExpress PRO/100 VE
                8086 3011  EtherExpress PRO/100 VM
                8086 3012  82562EH based Phoneline
                1028 0211  Optiplex 755
                1028 02da  OptiPlex 980
                103c 2a3b  Pavilion A1512X
+               103c 2a6f  Asus IPIBL-LB Motherboard
                103c 31fe  ProLiant DL140 G3
                103c 330b  ProLiant ML150 G6 Server
 # same ID possibly also on other ASUS boards
                1043 8277  P5K PRO Motherboard
+               1043 844d  P8 series motherboard
                1458 5000  Motherboard
+               1462 7418  Wind PC MS-7418
+               15d9 060d  C7SIM-Q Motherboard
                15d9 9680  X7DBN Motherboard
                1775 11cc  CC11/CL11
+               8086 7270  Server Board S1200BTS
        2450  82801E ISA Bridge (LPC)
        2452  82801E USB Controller
        2453  82801E SMBus Controller
                1509 1968  Averatec 5110H
                1734 1004  D1451 Mainboard (SCENIC N300, i845GV)
                1734 1055  Amilo M1420
+               1af4 1100  QEMU Virtual Machine
                4c53 1090  Cx9 / Vx9 mainboard
                8086 24c2  Latitude X300
                e4bf 0cc9  CC9-SAMBA
                e4bf 0cd2  CD2-BEBOP
        24d0  82801EB/ER (ICH5/ICH5R) LPC Interface Bridge
        24d1  82801EB (ICH5) SATA Controller
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                1028 019a  PowerEdge SC1425
                103c 12bc  d530 CMT (DG746A)
        24d2  82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1
                1014 02dd  eServer xSeries server mainboard
                1014 02ed  eServer xSeries server mainboard
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                1028 016c  PowerEdge 1850 onboard UHCI
                1028 016d  PowerEdge 2850 onboard UHCI
                1014 02dd  eServer xSeries server mainboard
                1014 02ed  eServer xSeries server mainboard
                1028 0156  Precision 360
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                103c 12bc  d330 uT
                103c 3208  ProLiant DL140 G2
        24d4  82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2
                1014 02dd  eServer xSeries server mainboard
                1014 02ed  eServer xSeries server mainboard
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                1028 016c  PowerEdge 1850 onboard UHCI
                1028 016d  PowerEdge 2850 onboard UHCI
                8086 524c  D865PERL mainboard
        24d5  82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller
                100a 147b  Abit IS7-E motherboard
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                103c 006a  NX9500
                103c 12bc  d330 uT
                103c 006a  NX9500
        24d7  82801EB/ER (ICH5/ICH5R) USB UHCI Controller #3
                1014 02ed  xSeries server mainboard
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                1028 016c  PowerEdge 1850 onboard UHCI
                1028 016d  PowerEdge 2850 onboard UHCI
        24db  82801EB/ER (ICH5/ICH5R) IDE Controller
                1014 02dd  eServer xSeries server mainboard
                1014 02ed  eServer xSeries server mainboard
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                1028 016c  PowerEdge 1850 IDE Controller
                1028 016d  PowerEdge 2850 IDE Controller
        24dd  82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller
                1014 02dd  eServer xSeries server mainboard
                1014 02ed  eServer xSeries server mainboard
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                1028 016c  PowerEdge 1850 onboard EHCI
                1028 016d  PowerEdge 2850 onboard EHCI
                8086 524c  D865PERL mainboard
        24de  82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4
                1014 02ed  xSeries server mainboard
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                1043 80a6  P4P800/P5P800 series motherboard
                1458 24d2  GA-8IPE1000 Pro2 motherboard (865PE)
                8086 4c43  Desktop Board D865GLC
                8086 524c  D865PERL mainboard
        24df  82801ER (ICH5R) SATA Controller
+               1028 0168  Precision Workstation 670 Mainboard
+       24f3  Wireless 8260
+# Snow Field Peak AC
+               8086 0010  Dual Band Wireless-AC 8260
+       24f4  Wireless 8260
+# Snow Field Peak AC
+               8086 0030  Dual Band Wireless-AC 8260
        2500  82820 820 (Camino) Chipset Host Bridge (MCH)
                1028 0095  Precision Workstation 220 Chipset
                1043 801c  P3C-2000 system chipset
                1775 10d0  V5D Single Board Computer
                1775 1100  CR11/VR11 Single Board Computer
                1775 ce90  CE9
+               1af4 1100  QEMU Virtual Machine
                4c53 10b0  CL9 mainboard
                4c53 10d0  Telum ASLP10 Processor AMC
                4c53 10e0  PSL09 PrPMC
                1043 1173  Asus A6VC
                1043 814e  P5GD1-VW Mainboard
                1462 7028  915P/G Neo2
+               1af4 1100  QEMU Virtual Machine
        266a  82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller
                1028 0177  Dimension 8400
                1028 0179  Optiplex GX280
                103c 2a3b  Pavilion A1512X
                1043 817a  P5LD2-VM Mainboard
                107b 5048  E4500
+               1462 7418  Wind PC MS-7418
                8086 544e  DeskTop Board D945GTP
        2771  82945G/GZ/P/PL PCI Express Root Port
        2772  82945G/GZ Integrated Graphics Controller
                103c 2a3b  Pavilion A1512X
+               1462 7418  Wind PC MS-7418
                8086 544e  DeskTop Board D945GTP
                8086 d605  Intel Desktop Board D945GCCR
        2774  82955X Memory Controller Hub
                103c 30a3  Compaq nw8440
                1043 1237  A6J-Q008
                17aa 2015  ThinkPad T60
-               17aa 2017  ThinkPad T60/R60 series
+               17aa 2017  ThinkPad R60/T60/X60 series
        27a1  Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port
                103c 309f  Compaq nx9420 Notebook
                103c 30a3  Compaq nw8440
        27a2  Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller
                103c 30a1  NC2400
-               17aa 201a  ThinkPad T60/R60 series
+               17aa 201a  ThinkPad R60/T60/X60 series
                9902 1584  CCE MPL-D10H120F
        27a6  Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller
                103c 30a1  NC2400
                1775 11cc  CC11/CL11 integrated graphics (secondary)
-               17aa 201a  ThinkPad T60/R60 series
+               17aa 201a  ThinkPad R60/T60/X60 series
        27ac  Mobile 945GSE Express Memory Controller Hub
                1775 11cc  CC11/CL11
        27ad  Mobile 945GSE Express PCI Express Root Port
                1028 01e6  PowerEdge 860
                1043 8179  P5KPL-VM Motherboard
                107b 5048  E4500
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
                8086 544e  DeskTop Board D945GTP
        27b9  82801GBM (ICH7-M) LPC Interface Bridge
                103c 30a1  NC2400
                103c 30a3  Compaq nw8440
                10f7 8338  Panasonic CF-Y5 laptop
-               17aa 2009  ThinkPad T60/R60 series
+               17aa 2009  ThinkPad R60/T60/X60 series
        27bc  NM10 Family LPC Controller
                105b 0d7c  D270S/D250S Motherboard
                144d c072  Notebook N150P
                107b 5048  E4500
                1462 2310  MSI Hetis 945
                1462 7236  945P Neo3-F Rev. 2.2 motherboard
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
                8086 544b  Desktop Board D425KT
                8086 544e  DeskTop Board D945GTP
        27c4  82801GBM/GHM (ICH7-M Family) SATA Controller [IDE mode]
                1025 006c  9814 WKMI
                1028 01d7  XPS M1210
-               17aa 200e  Thinkpad T60 model 2007
+               17aa 200e  ThinkPad T60
        27c5  82801GBM/GHM (ICH7-M Family) SATA Controller [AHCI mode]
                103c 309f  Compaq nx9420 Notebook
                103c 30a3  Compaq nw8440
-               17aa 200d  ThinkPad T60/R60 series
+               17aa 200d  ThinkPad R60/T60/X60 series
        27c6  82801GHM (ICH7-M DH) SATA Controller [RAID mode]
        27c8  NM10/ICH7 Family USB UHCI Controller #1
                1025 006c  9814 WKMI
                107b 5048  E4500
                144d c072  Notebook N150P
                1458 5004  GA-D525TUD
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
-               17aa 200a  ThinkPad T60/R60 series
+               17aa 200a  ThinkPad R60/T60/X60 series
                8086 4f4d  DeskTop Board D510MO
                8086 544b  Desktop Board D425KT
                8086 544e  DeskTop Board D945GTP
                107b 5048  E4500
                144d c072  Notebook N150P
                1458 5004  GA-D525TUD
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
-               17aa 200a  ThinkPad T60/R60 series
+               17aa 200a  ThinkPad R60/T60/X60 series
                8086 4f4d  DeskTop Board D510MO
                8086 544b  Desktop Board D425KT
                8086 544e  DeskTop Board D945GTP
                107b 5048  E4500
                144d c072  Notebook N150P
                1458 5004  GA-D525TUD
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
-               17aa 200a  ThinkPad T60/R60 series
+               17aa 200a  ThinkPad R60/T60/X60 series
                8086 4f4d  DeskTop Board D510MO
                8086 544e  DeskTop Board D945GTP
        27cb  NM10/ICH7 Family USB UHCI Controller #4
                107b 5048  E4500
                144d c072  Notebook N150P
                1458 5004  GA-D525TUD
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
-               17aa 200a  ThinkPad T60/R60 series
+               17aa 200a  ThinkPad R60/T60/X60 series
                8086 4f4d  DeskTop Board D510MO
                8086 544e  DeskTop Board D945GTP
        27cc  NM10/ICH7 Family USB2 EHCI Controller
                105b 0d7c  D270S/D250S Motherboard
                144d c072  Notebook N150P
                1458 5006  GA-D525TUD
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
-               17aa 200b  ThinkPad T60/R60 series
+               17aa 200b  ThinkPad R60/T60/X60 series
                8086 4f4d  DeskTop Board D510MO
                8086 544b  Desktop Board D425KT
                8086 544e  DeskTop Board D945GTP
                103c 30a3  Compaq nw8440
                144d c072  Notebook N150P
                1458 5001  GA-D525TUD
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
                8086 544b  Desktop Board D425KT
        27d2  NM10/ICH7 Family PCI Express Port 2
                103c 309f  Compaq nx9420 Notebook
                103c 30a3  Compaq nw8440
                144d c072  Notebook N150P
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
                8086 544b  Desktop Board D425KT
        27d4  NM10/ICH7 Family PCI Express Port 3
                144d c072  Notebook N150P
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
                8086 544b  Desktop Board D425KT
        27d6  NM10/ICH7 Family PCI Express Port 4
                103c 30a3  Compaq nw8440
                144d c072  Notebook N150P
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
                8086 544b  Desktop Board D425KT
        27d8  NM10/ICH7 Family High Definition Audio Controller
                144d c072  Notebook N150P
                1458 a002  GA-D525TUD (Realtek ALC887)
                1458 a102  GA-8I945PG-RH Mainboard
+               1462 7418  Wind PC MS-7418
                152d 0753  Softmodem
                1734 10ad  Conexant softmodem SmartCP
-               17aa 2010  ThinkPad T60/R60 series
+               17aa 2010  ThinkPad R60/T60/X60 series
                17aa 3802  Lenovo 3000 C200 audio [Realtek ALC861VD]
                8086 1112  DeskTop Board D945GTP
                8086 27d8  DeskTop Board D945GTP
                10f7 8338  Panasonic CF-Y5 laptop
                144d c072  Notebook N150P
                1458 5001  GA-8I945PG-RH/GA-D525TUD Mainboard
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
-               17aa 200f  ThinkPad T60/R60 series
+               17aa 200f  ThinkPad R60/T60/X60 series
                8086 4f4d  DeskTop Board D510MO
                8086 544b  Desktop Board D425KT
                8086 544e  DeskTop Board D945GTP
                1043 8179  P5KPL-VM Motherboard
                107b 5048  E4500
                10f7 8338  Panasonic CF-Y5 laptop
+               1462 7418  Wind PC MS-7418
                1775 11cc  CC11/CL11
-               17aa 200c  ThinkPad T60/R60 series
+               17aa 200c  ThinkPad R60/T60/X60 series
                8086 544e  DeskTop Board D945GTP
        27e0  82801GR/GH/GHM (ICH7 Family) PCI Express Port 5
                1775 11cc  CC11/CL11
        2821  82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA Controller [AHCI mode]
        2822  82801 SATA Controller [RAID mode]
                1028 020d  Inspiron 530
+               103c 2a6f  Asus IPIBL-LB Motherboard
        2823  Wellsburg sSATA RAID Controller
        2824  82801HB (ICH8) 4 port SATA Controller [AHCI mode]
                1043 81ec  P5B
                1028 0211  Optiplex 755
        2916  82801IR (ICH9R) LPC Interface Controller
                1028 020d  Inspiron 530
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 8277  P5K PRO Motherboard
                8086 5044  Desktop Board DP35DP
        2917  ICH9M-E LPC Interface Controller
        2918  82801IB (ICH9) LPC Interface Controller
                1028 0236  PowerEdge R610 82801IB (ICH9) LPC Interface Controller
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
        2919  ICH9M LPC Interface Controller
        2920  82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA Controller [IDE mode]
                1028 020d  Inspiron 530
                1028 0237  PowerEdge T610 SATA IDE Controller
                1462 7360  G33/P35 Neo
        2922  82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode]
+               1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
        2923  82801IB (ICH9) 4 port SATA Controller [AHCI mode]
        2925  82801IR/IO (ICH9R/DO) SATA Controller [RAID mode]
        2930  82801I (ICH9 Family) SMBus Controller
                1028 020d  Inspiron 530
                1028 0211  Optiplex 755
+               103c 2a6f  Asus IPIBL-LB Motherboard
                103c 3628  dv6-1190en
                1043 8277  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                e4bf cc4d  CCM-BOOGIE
        2932  82801I (ICH9 Family) Thermal Subsystem
                1028 0287  PowerEdge M610 onboard UHCI
                1028 029c  PowerEdge M710 USB UHCI Controller
                1028 2011  Optiplex 755
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 8277  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                e4bf cc4d  CCM-BOOGIE
        2935  82801I (ICH9 Family) USB UHCI Controller #2
                1028 023c  PowerEdge R200 onboard UHCI
                1028 0287  PowerEdge M610 onboard UHCI
                1028 029c  PowerEdge M710 USB UHCI Controller
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 8277  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                e4bf cc4d  CCM-BOOGIE
        2936  82801I (ICH9 Family) USB UHCI Controller #3
                1028 023c  PowerEdge R200 onboard UHCI
                1028 0287  PowerEdge M610 onboard UHCI
                1028 029c  PowerEdge M710 USB UHCI Controller
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 8277  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                e4bf cc4d  CCM-BOOGIE
        2937  82801I (ICH9 Family) USB UHCI Controller #4
                1028 0287  PowerEdge M610 onboard UHCI
                1028 029c  PowerEdge M710 USB UHCI Controller
                1028 2011  Optiplex 755
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 8277  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 2937  Optiplex 755
                8086 2942  828011 (ICH9 Family ) USB UHCI Controller
                8086 5044  Desktop Board DP35DP
                1028 0237  PowerEdge T610 USB UHCI Controller
                1028 0287  PowerEdge M610 onboard UHCI
                1028 029c  PowerEdge M710 USB UHCI Controller
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 8277  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 2938  Optiplex 755
                8086 5044  Desktop Board DP35DP
                e4bf cc4d  CCM-BOOGIE
                1028 020d  Inspiron 530
                1028 0210  PowerEdge T300 onboard UHCI
                1028 0237  PowerEdge T610 USB UHCI Controller
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 8277  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                e4bf cc4d  CCM-BOOGIE
        293a  82801I (ICH9 Family) USB2 EHCI Controller #1
                1028 023c  PowerEdge R200 onboard EHCI
                1028 0287  PowerEdge M610 onboard EHCI
                1028 029c  PowerEdge M710 USB EHCI Controller
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 8277  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
                e4bf cc4d  CCM-BOOGIE
        293c  82801I (ICH9 Family) USB2 EHCI Controller #2
                1028 0237  PowerEdge T610 USB EHCI Controller
                1028 0287  PowerEdge M610 onboard EHCI
                1028 029c  PowerEdge M710 USB EHCI Controller
+               103c 2a6f  Asus IPIBL-LB Motherboard
                1043 8277  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 293c  Optiplex 755
                8086 5044  Desktop Board DP35DP
                e4bf cc4d  CCM-BOOGIE
        293e  82801I (ICH9 Family) HD Audio Controller
                1028 020d  Inspiron 530
                1028 0211  Optiplex 755
+               103c 2a6f  Asus IPIBL-LB Motherboard
                103c 3628  dv6-1190en
                1043 829f  P5K PRO Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 293e  Optiplex 755
                8086 2940  Optiplex 755
                e4bf cc4d  CCM-BOOGIE
        2940  82801I (ICH9 Family) PCI Express Port 1
                1028 020d  Inspiron 530
                1028 0211  Optiplex 755
+               103c 2a6f  Asus IPIBL-LB Motherboard
 # same ID possibly also on other ASUS boards
                1043 8277  P5K PRO Motherboard
                8086 2940  Optiplex 755
                1028 020d  Inspiron 530
        2944  82801I (ICH9 Family) PCI Express Port 3
                1028 020d  Inspiron 530
+               103c 2a6f  Asus IPIBL-LB Motherboard
        2946  82801I (ICH9 Family) PCI Express Port 4
                1028 020d  Inspiron 530
        2948  82801I (ICH9 Family) PCI Express Port 5
                1028 0211  OptiPlex 755
        29c0  82G33/G31/P35/P31 Express DRAM Controller
                1028 020d  Inspiron 530
+               103c 2a6f  Asus IPIBL-LB Motherboard
 # same ID possibly also on other ASUS boards
                1043 8276  P5K PRO Motherboard
                1043 82b0  P5KPL-VM Motherboard
                1462 7360  G33/P35 Neo
+               1af4 1100  QEMU Virtual Machine
                8086 5044  Desktop Board DP35DP
        29c1  82G33/G31/P35/P31 Express PCI Express Root Port
                1028 020d  Inspiron 530
        2e16  4 Series Chipset PT IDER Controller
        2e17  4 Series Chipset Serial KT Controller
        2e20  4 Series Chipset DRAM Controller
+               1028 0283  Dell Vostro 220
                1043 82d3  P5Q Deluxe Motherboard
                1458 5000  GA-EP45-DS5/GA-EG45M-DS2H Motherboard
        2e21  4 Series Chipset PCI Express Root Port
        2f36  Haswell-E R3 QPI Link 0 & 1 Monitoring
        2f37  Haswell-E R3 QPI Link 0 & 1 Monitoring
        2f38  Haswell-E Home Agent 1
+       2f39  Haswell-E I/O Performance Monitoring
        2f3a  Haswell-E QPI Link 2
        2f3e  Haswell-E R3 QPI Link 2 Monitoring
        2f3f  Haswell-E R3 QPI Link 2 Monitoring
                4c53 10d0  Telum ASLP10 Processor AMC
        3591  E7525/E7520 Error Reporting Registers
                1014 02dd  eServer xSeries server mainboard
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
                103c 3208  ProLiant DL140 G2
                4c53 10d0  Telum ASLP10 Processor AMC
        359b  E7525/E7520/E7320 Extended Configuration Registers
                1014 02dd  eServer xSeries server mainboard
        359e  E7525 Memory Controller Hub
+               1028 0168  Precision Workstation 670 Mainboard
                1028 0169  Precision 470
        35b0  3100 Chipset Memory I/O Controller Hub
        35b1  3100 DRAM Controller Error Reporting Registers
                1025 0347  Aspire 7740G
        3b0a  5 Series Chipset LPC Interface Controller
                1028 02da  OptiPlex 980
+               15d9 060d  C7SIM-Q Motherboard
        3b0b  Mobile 5 Series Chipset LPC Interface Controller
        3b0c  5 Series Chipset LPC Interface Controller
        3b0d  5 Series/3400 Series Chipset LPC Interface Controller
        3b21  5 Series/3400 Series Chipset 2 port SATA IDE Controller
        3b22  5 Series/3400 Series Chipset 6 port SATA AHCI Controller
                1028 02da  OptiPlex 980
+               15d9 060d  C7SIM-Q Motherboard
        3b23  5 Series/3400 Series Chipset 4 port SATA AHCI Controller
        3b25  5 Series/3400 Series Chipset SATA RAID Controller
        3b26  5 Series/3400 Series Chipset 2 port SATA IDE Controller
                1025 0347  Aspire 7740G
                1028 02da  OptiPlex 980
                1028 040b  Latitude E6510
+               15d9 060d  C7SIM-Q Motherboard
                e4bf 50c1  PC1-GROOVE
        3b32  5 Series/3400 Series Chipset Thermal Subsystem
                1025 0347  Aspire 7740G
                1025 0347  Aspire 7740G
                1028 02da  OptiPlex 980
                1028 040b  Latitude E6510
+               15d9 060d  C7SIM-Q Motherboard
                e4bf 50c1  PC1-GROOVE
        3b36  5 Series/3400 Series Chipset USB Universal Host Controller
        3b37  5 Series/3400 Series Chipset USB Universal Host Controller
                1025 0347  Aspire 7740G
                1028 02da  OptiPlex 980
                1028 040b  Latitude E6510
+               15d9 060d  C7SIM-Q Motherboard
                e4bf 50c1  PC1-GROOVE
        3b3e  5 Series/3400 Series Chipset USB Universal Host Controller
        3b3f  5 Series/3400 Series Chipset USB Universal Host Controller
        3b42  5 Series/3400 Series Chipset PCI Express Root Port 1
                1028 02da  OptiPlex 980
                1028 040b  Latitude E6510
+               15d9 060d  C7SIM-Q Motherboard
        3b44  5 Series/3400 Series Chipset PCI Express Root Port 2
                1028 040b  Latitude E6510
+               15d9 060d  C7SIM-Q Motherboard
        3b46  5 Series/3400 Series Chipset PCI Express Root Port 3
                1028 040b  Latitude E6510
        3b48  5 Series/3400 Series Chipset PCI Express Root Port 4
                1025 0347  Aspire 7740G
                1028 02da  OptiPlex 980
                1028 040b  Latitude E6510
+               15d9 060d  C7SIM-Q Motherboard
                e4bf 50c1  PC1-GROOVE
        3b57  5 Series/3400 Series Chipset High Definition Audio
        3b64  5 Series/3400 Series Chipset HECI Controller
                1025 0347  Aspire 7740G
+               15d9 060d  C7SIM-Q Motherboard
                e4bf 50c1  PC1-GROOVE
        3b65  5 Series/3400 Series Chipset HECI Controller
        3b66  5 Series/3400 Series Chipset PT IDER Controller
                1351 103c  Compaq NC6220
        4224  PRO/Wireless 2915ABG [Calexico2] Network Connection
        4227  PRO/Wireless 3945ABG [Golan] Network Connection
-               8086 1011  ThinkPad R60e/X60s
+               8086 1011  ThinkPad T60/R60e/X60s
                8086 1014  PRO/Wireless 3945BG Network Connection
        4229  PRO/Wireless 4965 AG or AGN [Kedron] Network Connection
                8086 1100  Vaio VGN-SZ79SN_C
        504a  EP80579 Reserved
        504b  EP80579 Reserved
        504c  EP80579 Integrated Processor with QuickAssist TDM
-       5200  EtherExpress PRO/100 Intelligent Server
-       5201  EtherExpress PRO/100 Intelligent Server
+       5200  EtherExpress PRO/100 Intelligent Server PCI Bridge
+       5201  EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller
                8086 0001  EtherExpress PRO/100 Server Ethernet Adapter
        530d  80310 (IOP) IO Processor
+       5845  QEMU NVM Express Controller
+               1af4 1100  QEMU Virtual Machine
        65c0  5100 Chipset Memory Controller Hub
        65e2  5100 Chipset PCI Express x4 Port 2
        65e3  5100 Chipset PCI Express x4 Port 3
        7010  82371SB PIIX3 IDE [Natoma/Triton II]
                1af4 1100  Qemu virtual machine
        7020  82371SB PIIX3 USB [Natoma/Triton II]
-               1af4 1100  Qemu virtual machine
+               1af4 1100  QEMU Virtual Machine
        7030  430VX - 82437VX TVX [Triton VX]
        7050  Intercast Video Capture Card
        7051  PB 642365-003 (Business Video Conferencing Card)
                15ad 1976  Virtual Machine Chipset
        7112  82371AB/EB/MB PIIX4 USB
                15ad 1976  Virtual Machine Chipset
+               1af4 1100  QEMU Virtual Machine
        7113  82371AB/EB/MB PIIX4 ACPI
                15ad 1976  Virtual Machine Chipset
                1af4 1100  Qemu virtual machine
        8c01  8 Series Chipset Family 4-port SATA Controller 1 [IDE mode] - Mobile
        8c02  8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
        8c03  8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        8c04  8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode]
        8c05  8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode]
        8c06  8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode]
        8c0e  8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode]
        8c0f  8 Series/C220 Series Chipset Family SATA Controller 1 [RAID mode]
        8c10  8 Series/C220 Series Chipset Family PCI Express Root Port #1
+               17aa 220e  ThinkPad T440p
        8c11  8 Series/C220 Series Chipset Family PCI Express Root Port #1
        8c12  8 Series/C220 Series Chipset Family PCI Express Root Port #2
+               17aa 220e  ThinkPad T440p
        8c13  8 Series/C220 Series Chipset Family PCI Express Root Port #2
        8c14  8 Series/C220 Series Chipset Family PCI Express Root Port #3
        8c15  8 Series/C220 Series Chipset Family PCI Express Root Port #3
        8c1e  8 Series/C220 Series Chipset Family PCI Express Root Port #8
        8c1f  8 Series/C220 Series Chipset Family PCI Express Root Port #8
        8c20  8 Series/C220 Series Chipset High Definition Audio Controller
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        8c21  8 Series/C220 Series Chipset High Definition Audio Controller
        8c22  8 Series/C220 Series Chipset Family SMBus Controller
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        8c23  8 Series Chipset Family CHAP Counters
        8c24  8 Series Chipset Family Thermal Management Controller
        8c26  8 Series/C220 Series Chipset Family USB EHCI #1
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        8c2d  8 Series/C220 Series Chipset Family USB EHCI #2
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        8c31  8 Series/C220 Series Chipset Family USB xHCI
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        8c33  8 Series/C220 Series Chipset Family LAN Controller
        8c34  8 Series/C220 Series Chipset Family NAND Controller
        8c3a  8 Series/C220 Series Chipset Family MEI Controller #1
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        8c3b  8 Series/C220 Series Chipset Family MEI Controller #2
        8c3c  8 Series/C220 Series Chipset Family IDE-r Controller
        8c3d  8 Series/C220 Series Chipset Family KT Controller
        8c4d  8 Series/C220 Series Chipset Family LPC Controller
        8c4e  Q87 Express LPC Controller
        8c4f  QM87 Express LPC Controller
+               103c 1909  ZBook 15
+               17aa 220e  ThinkPad T440p
        8c50  B85 Express LPC Controller
        8c51  8 Series/C220 Series Chipset Family LPC Controller
        8c52  C222 Series Chipset Family Server Essential SKU LPC Controller
        8d02  Wellsburg 6-Port SATA Controller [AHCI mode]
        8d04  Wellsburg SATA Controller [RAID mode]
        8d06  Wellsburg SATA Controller [RAID mode]
+               17aa 1031  ThinkServer RAID 110i
        8d08  Wellsburg 2-port SATA Controller [IDE mode]
        8d0e  Wellsburg SATA Controller [RAID mode]
        8d10  Wellsburg PCI Express Root Port #1
        9c01  Lynx Point-LP SATA Controller 1 [IDE mode]
        9c02  Lynx Point-LP SATA Controller 1 [AHCI mode]
        9c03  Lynx Point-LP SATA Controller 1 [AHCI mode]
+               17aa 2214  ThinkPad X240
        9c04  Lynx Point-LP SATA Controller 1 [RAID mode]
        9c05  Lynx Point-LP SATA Controller 1 [RAID mode]
        9c06  Lynx Point-LP SATA Controller 1 [RAID mode]
        9c1e  Lynx Point-LP PCI Express Root Port 8
        9c1f  Lynx Point-LP PCI Express Root Port 8
        9c20  Lynx Point-LP HD Audio Controller
+               17aa 2214  ThinkPad X240
        9c21  Lynx Point-LP HD Audio Controller
        9c22  Lynx Point-LP SMBus Controller
+               17aa 2214  ThinkPad X240
        9c23  Lynx Point-LP CHAP Counters
        9c24  Lynx Point-LP Thermal
        9c26  Lynx Point-LP USB EHCI #1
+               17aa 2214  ThinkPad X240
        9c2d  Lynx Point-LP USB EHCI #2
        9c31  Lynx Point-LP USB xHCI HC
+               17aa 2214  ThinkPad X240
        9c35  Lynx Point-LP SDIO Controller
        9c36  Lynx Point-LP Audio DSP Controller
        9c3a  Lynx Point-LP HECI #0
+               17aa 2214  ThinkPad X240
        9c3b  Lynx Point-LP HECI #1
        9c3c  Lynx Point-LP HECI IDER
        9c3d  Lynx Point-LP HECI KT
        9c41  Lynx Point-LP LPC Controller
        9c42  Lynx Point-LP LPC Controller
        9c43  Lynx Point-LP LPC Controller
+               17aa 2214  ThinkPad X240
        9c44  Lynx Point-LP LPC Controller
        9c45  Lynx Point-LP LPC Controller
        9c46  Lynx Point-LP LPC Controller
        9c64  Lynx Point-LP UART Controller #1
        9c65  Lynx Point-LP SPI Controller #0
        9c66  Lynx Point-LP SPI Controller #1
+       9c83  Wildcat Point-LP SATA Controller [AHCI Mode]
+       9c85  Wildcat Point-LP SATA Controller [RAID Mode]
+       9c87  Wildcat Point-LP SATA Controller [RAID Mode]
+       9c8f  Wildcat Point-LP SATA Controller [RAID Mode]
+       9c90  Wildcat Point-LP PCI Express Root Port #1
+       9c92  Wildcat Point-LP PCI Express Root Port #2
+       9c94  Wildcat Point-LP PCI Express Root Port #3
+       9c96  Wildcat Point-LP PCI Express Root Port #4
+       9c98  Wildcat Point-LP PCI Express Root Port #5
+       9c9a  Wildcat Point-LP PCI Express Root Port #6
+       9ca0  Wildcat Point-LP High Definition Audio Controller
+       9ca2  Wildcat Point-LP SMBus Controller
+       9ca4  Wildcat Point-LP Thermal Management Controller
+       9ca6  Wildcat Point-LP USB EHCI Controller
+       9cb1  Wildcat Point-LP USB xHCI Controller
+       9cb5  Wildcat Point-LP Secure Digital IO Controller
+       9cb6  Wildcat Point-LP Smart Sound Technology Controller
+       9cba  Wildcat Point-LP MEI Controller #1
+       9cbb  Wildcat Point-LP MEI Controller #2
+       9cbc  Wildcat Point-LP IDE-r Controller
+       9cbd  Wildcat Point-LP KT Controller
+       9cc1  Wildcat Point-LP LPC Controller
+       9cc2  Wildcat Point-LP LPC Controller
+       9cc3  Wildcat Point-LP LPC Controller
+       9cc5  Wildcat Point-LP LPC Controller
+       9cc6  Wildcat Point-LP LPC Controller
+       9cc7  Wildcat Point-LP LPC Controller
+       9cc9  Wildcat Point-LP LPC Controller
+       9ce0  Wildcat Point-LP Serial IO DMA Controller
+       9ce1  Wildcat Point-LP Serial IO I2C Controller #0
+       9ce2  Wildcat Point-LP Serial IO I2C Controller #1
+       9ce3  Wildcat Point-LP Serial IO UART Controller #0
+       9ce4  Wildcat Point-LP Serial IO UART Controller #1
+       9ce5  Wildcat Point-LP Serial IO GSPI Controller #0
+       9ce6  Wildcat Point-LP Serial IO GSPI Controller #1
        a000  Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge
                1458 5000  GA-D525TUD
                8086 4f4d  DeskTop Board D510MO
        d130  Core Processor DMI
        d131  Core Processor DMI
                1028 02da  OptiPlex 980
+               15d9 060d  C7SIM-Q Motherboard
        d132  Core Processor DMI
                1028 040b  Latitude E6510
        d133  Core Processor DMI
        d138  Core Processor PCI Express Root Port 1
                1028 02da  OptiPlex 980
                1028 040b  Latitude E6510
+               15d9 060d  C7SIM-Q Motherboard
        d139  Core Processor PCI Express Root Port 2
        d13a  Core Processor PCI Express Root Port 3
        d13b  Core Processor PCI Express Root Port 4
        8088  PMC-Sierra PM8018 SAS HBA [Series 7H]
        8089  PMC-Sierra PM8019 SAS encryption HBA [Series 7He]
        808f  AIC-7901 U320 w/HostRAID
+               1028 0168  Precision Workstation 670 Mainboard
        8090  ASC-39320 U320 w/HostRAID
        8091  ASC-39320D U320 w/HostRAID
        8092  ASC-29320 U320 w/HostRAID
        9904  4-Port PCIe Serial Adapter
 # 2-port Serial 1-port Parallel Adaptor
        9912  PCIe 9912 Multi-I/O Controller
-       9922  PCIe 9922 Multi-I/O Controller
+       9922  MCS9922 PCIe Multi-I/O Controller
        9990  MCS9990 PCIe to 4‐Port USB 2.0 Host Controller
+# Subsystem ID on a 3c985B-SX network card
+9850  3Com (wrong ID)
 9902  Stargen Inc.
        0001  SG2010 PCI over Starfabric Bridge
        0002  SG2010 PCI to Starfabric Gateway
@@ -23787,6 +24692,22 @@ a304  Sony
 a727  3Com Corporation
        0013  3CRPAG175 Wireless PC Card
        6803  3CRDAG675B Wireless 11a/b/g Adapter
+aa00  iTuner
+aa01  iTuner
+aa02  iTuner
+aa03  iTuner
+aa04  iTuner
+aa05  iTuner
+aa06  iTuner
+aa07  iTuner
+aa08  iTuner
+aa09  iTuner
+aa0a  iTuner
+aa0b  iTuner
+aa0c  iTuner
+aa0d  iTuner
+aa0e  iTuner
+aa0f  iTuner
 aa42  Scitex Digital Video
 aa55  Ncomputing X300 PCI-Engine
 aaaa  Adnaco Technology Inc.
@@ -23811,6 +24732,7 @@ b1d9  ATCOM Technology co., LTD.
 # Pinnacle should be 11bd, but they got it wrong several times --mj
 bd11  Pinnacle Systems, Inc. (Wrong ID)
 bdbd  Blackmagic Design
+       a106  Multibridge Extreme
        a117  Intensity Pro
        a11a  DeckLink HD Extreme 2
        a11b  DeckLink SDI/Duo/Quad
@@ -23818,9 +24740,16 @@ bdbd  Blackmagic Design
        a11d  DeckLink Studio
        a11e  DeckLink Optical Fibre
        a121  DeckLink HD Extreme 3D/3D+
+       a124  Intensity Extreme
+       a126  Intensity Shuttle
+       a127  UltraStudio Express
+       a129  UltraStudio Mini Monitor
+       a12a  UltraStudio Mini Recorder
+       a12d  UltraStudio 4K
        a12e  DeckLink 4K Extreme
        a12f  DeckLink Mini Monitor
        a130  DeckLink Mini Recorder
+       a132  UltraStudio 4K
 c001  TSI Telsys
 c0a9  Micron/Crucial Technology
 c0de  Motorola
@@ -23872,13 +24801,31 @@ d4d4  Dy4 Systems Inc
 d531  I+ME ACTIA GmbH
 d84d  Exsys
 dada  Datapath Limited
+       0133  VisionRGB-X2
+       0139  VisionRGB-E1
+       0144  VisionSD8
+       0150  VisionRGB-E2
+       0151  VisionSD4+1
+       0159  VisionAV
+       0161  DGC161
+       0165  DGC165
+       0167  DGC167
+       0168  DGC168
+       1139  VisionRGB-E1S
+       1150  VisionRGB-E2S
+       1151  VisionSD4+1S
+       1153  VisionDVI-DL
+       1154  VisionSDI2
 db10  Diablo Technologies
 dcba  Dynamic Engineering
-       0046  PCIeAlteraCycloneIV
+       0046  PCIe Altera Cyclone IV
 # VPX format Receiver Controller Board
        0047  VPX-RCB
 # PMC Format FPGA design with 8 high speed UART channels
        0048  PMC-Biserial-III-BAE9
+       004e  PC104p-Biserial-III-NVY5
+       004f  PC104p-Biserial-III-NVY6
+       0052  PCIeBiSerialDb37 BA22 LVDS IO
 dd01  Digital Devices GmbH
        0003  Octopus DVB Adapter
                dd01 0001  Octopus DVB adapter
@@ -23921,6 +24868,7 @@ e4bf  EKF Elektronik GmbH
        53c1  SC1-ALLEGRO
        cc47  CCG-RUMBA
        cc4d  CCM-BOOGIE
+e4e4  Xorcom
 e55e  Essence Technology, Inc.
 ea01  Eagle Technology
        000a  PCI-773 Temperature Card
index 746285161120a38b294713f092a603e5f552d32f..c8a83c862be06dda0c1e10d046a2852519a51feb 100644 (file)
@@ -9,8 +9,8 @@
 #      The latest version can be obtained from
 #              http://www.linux-usb.org/usb.ids
 #
-# Version: 2013.08.21
-# Date:    2013-08-21 20:34:03
+# Version: 2014.02.03
+# Date:    2014-02-03 20:34:03
 #
 
 # Vendors, devices and interfaces. Please keep sorted.
 0002  Ingram
 0003  Club Mac
 0004  Nebraska Furniture Mart
+0011  Unknown manufacturer
+       7788  Flash mass storage drive
 0053  Planex
        5301  GW-US54ZGL 802.11bg
 0079  DragonRise Inc.
-       0006  Generic USB Joystick
+       0006  PC TWIN SHOCK Gamepad
        0011  Gamepad
 0105  Trust International B.V.
        145f  NW-3100 802.11b/g 54Mbps Wireless Network Adapter [zd1211]
        0112  Card Reader
 017c  MLK
        145f  Trust Deskset
+0200  TP-Link
+       0201  MA180 UMTS Modem
 0204  Chipsbank Microelectronics Co., Ltd
-       6025  CBM2080 Flash drive controller
+       6025  CBM2080 / CBM2090 Flash drive controller
        6026  CBM1180 Flash drive controller
 0218  Hangzhou Worlde
        0301  MIDI Port
        2107  AVR Dragon
        2109  STK541 ZigBee Development Board
        210d  XPLAIN evaluation kit (CDC ACM)
+       2110  AVR JTAGICE3 Debugger and Programmer
        2122  XMEGA-A1 Explained evaluation kit
        2310  EVK11xx evaluation board
        2fe4  ATxmega32A4U DFU bootloader
        0412  Printing Support
        0417  LaserJet 1200 series
        0423  HS-COMBO Cardreader
+       042a  LaserJet M1132 MFP
+       0441  HP Prime Calculator
        0504  DeskJet 885c
        0505  ScanJet 2100c
        0507  DVD+RW
        2311  OfficeJet d series
        2312  OfficeJet Pro L7700
        2317  LaserJet 4350
-       231d  4 GB Flash Drive
+       231d  Broadcom 2070 Bluetooth Combo
        2402  PhotoSmart 7700 series
        2404  Deskjet F2280 series
        2405  ScanJet 4070 PhotoSmart
        2504  DeskJet F4200 series
        2505  ScanJet 3770
        2512  OfficeJet Pro L7300
+       2514  4-port hub
        2517  LaserJet 2410
        251d  Gobi 2000 Wireless Modem
        2524  LP3065 30" Monitor Hub
        3b11  PSC 1300 series
        3b17  LaserJet M1005 MFP
        3c02  PhotoSmart 7350
+       3c05  Scanjet Professional 1000 Mobile Scanner
        3c11  PSC 1358
        3c17  EWS UPD
        3d02  PhotoSmart 7350~
        5017  EWS UPD
        5111  PhotoSmart 3200 series
        5211  PhotoSmart 3300 series
+       5307  v165w Stick
        5311  OfficeJet 6300
        5312  Officejet Pro 8500A
        5411  OfficeJet 4300
        8028  Dev board JTAG (FT232H based)
        8040  4 Port Hub
        8070  7 Port Hub
+       8140  Vehicle Explorer Interface
        8210  MGTimer - MGCC (Vic) Timing System
        8370  7 Port Hub
        8371  PS/2 Keyboard And Mouse
        8372  FT8U100AX Serial Port
        8a28  Rainforest Automation ZigBee Controller
        8a98  TIAO Multi-Protocol Adapter
+       8b28  Alpermann+Velte TCI70
+       8b29  Alpermann+Velte TC60 CLS
+       8b2a  Alpermann+Velte Rubidium Q1
+       8b2b  Alpermann+Velte TCD
+       8b2c  Alpermann+Velte TCC70
+       9133  CallerID
+       9135  Rotary Pub alarm
        9e90  Marvell OpenRD Base/Client
        9f80  Ewert Energy Systems CANdapter
        a6d0  Texas Instruments XDS100v2 JTAG / BeagleBone A3
        c8bc  Alpermann+Velte Rubidium S1
        c8bd  Alpermann+Velte Rubidium T1
        c8be  Alpermann+Velte Rubidium D1
+       c8bf  Alpermann+Velte TC60 RLV
        cc48  Tactrix OpenPort 1.3 Mitsubishi
        cc49  Tactrix OpenPort 1.3 Subaru
        cc4a  Tactrix OpenPort 1.3 Universal
        4000  InkJet Color Printer
        4021  Photo Printer 6800
        4022  1400 Digital Photo Printer
+       402e  605 Photo Printer
        4034  805 Photo Printer
        4056  ESP 7200 Series AiO
        4109  EasyShare Printer Dock Series 3
        6004  i60
        6005  i80
 040b  Weltrend Semiconductor
+       0a68  Func MS-3 gaming mouse [WT6573F MCU]
        6510  Weltrend Bar Code Reader
        6520  XBOX Xploder
        6533  Speed-Link Competition Pro
        4056  Live! Cam Video IM Pro
        4057  Live! Cam Optia
        4058  Live! Cam Optia AF
+       405f  WebCam Vista (VF0330)
        4061  Live! Cam Notebook Pro [VF0400]
        4063  Live! Cam Video IM Pro
        4068  Live! Cam Notebook [VF0470]
        4a4d  Flatron 915FT Plus Monitor
        7001  MF-PD100 Soul Digital MP3 Player
        7013  MP3 Player
+       70d7  Mouse Scanner LSM-150 [LG Smart Scan Mouse]
        70f5  External HDD
        8484  LPC-U30 Webcam II
        8585  LPC-UC35 Webcam
        b10a  T.16000M Joystick
        b203  360 Modena Pro Wheel
        b300  Firestorm Dual Power
+       b303  FireStorm Dual Analog 2
        b304  Firestorm Dual Power
        b307  vibrating Upad
        b30b  Wireless VibrationPad
        0151  Super Flash 1GB / GXT  64MB Flash Drive
        0162  SiS162 usb Wireless LAN Adapter
        0163  802.11 Wireless LAN Adapter
+       0817  SiS-184-ASUS-4352.17 touch panel
        5401  Wireless Adapter RO80211GS-USB
 0458  KYE Systems Corp. (Mouse Systems)
        0001  Mouse
        705c  Genius iSlim 1300AF
        7079  FaceCam 2025R
        707f  TVGo DVB-T03 [RTL2832]
+       7088  WideCam 1050
 0459  Adobe Systems, Inc.
 045a  SONICblue, Inc.
        07da  Supra Express 56K modem
        076d  LifeCam HD-5000
        0772  LifeCam Studio
        0779  LifeCam HD-3000
+       0780  Comfort Curve Keyboard 3000
+       0797  Optical Mouse 200
        930a  ISOUSB.SYS Intel 82930 Isochronous IO Test Board
        ffca  Catalina
        fff8  Keyboard
 0467  AT&T Paradyne
 0468  Wieson Technologies Co., Ltd
 046a  Cherry GmbH
-       0001  My3000 Keyboard
+       0001  Keyboard
        0003  My3000 Hub
        0004  CyBoard Keyboard
        0005  XX33 SmartCard Reader Keyboard
        c061  RX1500 Laser Mouse
        c062  M-UAS144 [LS1 Laser Mouse]
        c063  DELL Laser Mouse
+       c064  M110 corded optical mouse (M-B0001)
        c066  G9x Laser Mouse
        c068  G500 Laser Mouse
        c069  M500 Laser Mouse
        c06a  USB Optical Mouse
        c06b  G700 Wireless Gaming Mouse
        c06c  Optical Mouse
+       c077  M105 Optical Mouse
        c101  UltraX Media Remote
        c110  Harmony 785/885 Remote
        c111  Harmony 525 Remote
        c124  Harmony 300 Remote
        c125  Harmony 200 Remote
        c126  Harmony Link
+       c12b  Harmony Touch Remote
        c201  WingMan Extreme Joystick with Throttle
        c202  WingMan Formula
        c207  WingMan Extreme Digital 3D
        c225  G11/G15 Keyboard / G keys
        c226  G15 Refresh Keyboard
        c227  G15 Refresh Keyboard
+       c228  G19 Gaming Keyboard
+       c229  G19 Gaming Keyboard Macro Interface
        c22a  Gaming Keyboard G110
        c22b  Gaming Keyboard G110 G-keys
        c22d  G510 Gaming Keyboard
        c22e  G510 Gaming Keyboard onboard audio
        c245  G400 Optical Mouse
        c246  Gaming Mouse G300
+       c248  G105 Gaming Keyboard
+       c24a  G600 Gaming Mouse
+       c24d  G710 Gaming Keyboard
+       c24e  G500s Laser Gaming Mouse
        c281  WingMan Force
        c283  WingMan Force 3D
        c285  WingMan Strike Force 3D
        0014  InTouch Module
        a006  External Disk 1.5TB
        a007  External Disk USB 3.0
+       a009  Stor.E Basics
+       d010  External Disk 3TB
 0481  Zenith Data Systems
 0482  Kyocera Corp.
        000e  FS-1020D Printer
        5000  ST Micro/Ergenic ERG BT-002 Bluetooth Adapter
        5001  ST Micro Bluetooth Device
        5710  Joystick in FS Mode
+       5720  STM microSD Flash Device
        5721  Hantek DDS-3X25 Arbitrary Waveform Generator
        5740  STM32F407
        7270  ST Micro Serial Bridge
        9006  IT9135 BDA Afatech DVB-T HDTV Dongle
        9009  Zolid HD DVD Maker
        9135  Zolid Mini DVB-T Stick
+       9503  ITE it9503 feature-limited DVB-T transmission chip [ccHDtv]
+       9507  ITE it9507 full featured DVB-T transmission chip [ccHDtv]
 048f  Eicon Tech.
 0490  United Microelectronics Corp.
 0491  Capetronic
        31e4  PowerShot SX20 IS
        31e5  Digital IXUS 200 IS
        31e6  PowerShot SD940 IS DIGITAL ELPH / Digital IXUS 120 IS / IXY DIGITAL 220 IS
+       31e7  SELPHY CP790
        31ea  EOS Rebel T2i / EOS 550D / EOS Kiss X4
        31ee  SELPHY ES40
        31ef  PowerShot A495
        325c  PowerShot SX500 IS
        325f  PowerShot SX280 HS
        3260  PowerShot SX270 HS
+       3262  PowerShot A2600
        3264  PowerShot A1400
+       3265  Powershot ELPH 130 IS / IXUS 140
        3268  PowerShot ELPH 330 HS / IXUS 255 HS
+       3271  PowerShot A2500
+       3276  PowerShot SX170 IS
+       3277  PowerShot SX510 HS
+       327d  Powershot ELPH 115 IS / IXUS 132
 04aa  DaeWoo Telecom, Ltd
 04ab  Chromatic Research
 04ac  Micro Audiometrics Corp.
        0424  D3000
        0425  D300S
        0428  D7000
+       0429  D5100
        042a  D800 (ptp)
        0f03  PD-10 Wireless Printer Adapter
        4000  Coolscan LS 40 ED
        4427  Portable CD ROM
        4482  Serial Converter
        4485  Serial Converter
+       4524  40 Character Vacuum Fluorescent Display
        4525  Double sided CRT
        4535  4610 Suremark Printer
        4550  NVRAM (128 KB)
        10e7  fi-5900C
        10fe  S500
        1150  fi-6230
+       201d  SATA 3.0 6Gbit/s Adaptor [GROOVY]
 04c6  Toshiba America Electronic Components
 04c7  Micro Macro Technologies
 04c8  Konica Corp.
        072c  Revio KD20M
        072d  Revio KD410Z
 04ca  Lite-On Technology Corp.
+       004f  SK-9020 keyboard
        1766  HID Monitor Controls
        2004  Bluetooth 4.0 [Broadcom BCM20702A0]
        9304  Hub
        1400  PS/2 keyboard + mouse controller
        1503  Shortboard Lefty
        1603  Keyboard
+       1702  Keyboard LKS02
        2013  Keyboard [Das Keyboard]
        2221  Keyboard
        2323  Keyboard
        2519  Shenzhen LogoTech 2.4GHz receiver
        2832  1channel Telephone line recorder
+       2834  HT82A834R Audio MCU
        a055  Keyboard
 04da  Panasonic (Matsushita)
        0901  LS-120 Camera
        5151  SCR338 Keyboard Smart Card Reader
        5292  SCL011 RFID reader
        5410  SCR35xx Smart Card Reader
+       5591  SCL3711-NFC&RW
        e000  SCRx31 Reader
        e001  SCR331 SmartCard Reader
        e003  SPR532 PinPad SmartCard Reader
        0760  Acer KU-0760 Keyboard
        0841  HP Multimedia Keyboard
        0860  2.4G Multimedia Wireless Kit
+       1121  Periboard 717 Mini Wireless Keyboard
        a001  E-Video DC-100 Camera
        a120  ORITE CCD Webcam(PC370R)
        a121  ORITE CCD Webcam(PC370R)
        b330  Asus 720p CMOS webcam
        b354  UVC 1.00 device HD UVC WebCam
 04f3  Elan Microelectronics Corp.
+       000a  Touchscreen
        0103  ActiveJet K-2024 Multimedia Keyboard
        01a4  Wireless Keyboard
        0210  Optical Mouse
        1004  F9L1004 802.11n Surf N300 XR Wireless Adapter [Realtek RTL8192CU]
        1102  F7D1102 N150/Surf Micro Wireless Adapter v1000 [Realtek RTL8188CUS]
        1103  F9L1103 N750 DB 802.11abgn 2x3:3 [Ralink RT3573]
+       1106  F9L1106v1 802.11a/b/g/n/ac Wireless Adapter [Broadcom BCM43526]
+       1109  F9L1109v1 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU]
        11f2  ISY Wireless Micro Adapter IWL 2000 [RTL8188CUS]
        1202  F5U120-PC Parallel Printer Port
        1203  F5U120-PC Serial Port
        0440  DSC-H55
        0485  MHS-PM5 HD camcorder
        04cb  WALKMAN NWZ-E354
+       06bb  WALKMAN NWZ-F805
        1000  Wireless Buzz! Receiver
 054d  Try Corp.
 054e  Proside Corp.
        0001  Hard Drive Adapter (TPP)
        0002  SigmaDrive Adapter (TPP)
 0906  Faraday Technology Corp.
-0908  ShenZhen SANZHAI Technology Co.,Ltd
-       2701  Spy Pen VGA
+0908  Siemens AG
+       2701  ShenZhen SANZHAI Technology Co.,Ltd Spy Pen VGA
 0909  Audio-Technica Corp.
 090a  Trumpion Microelectronics, Inc.
        1001  T33520 Flash Card Controller
 0ff7  CHI SHING Computer Accessories Co., Ltd
 0ffc  Clavia DMI AB
        0021  Nord Stage 2
+0ffd  EarlySense
+       ff00  OEM
 0fff  Aopen, Inc.
 1000  Speed Tech Corp.
 1001  Ritronics Components (S) Pte., Ltd
 1b59  K.S. Terminals Inc.
 1b5a  Chao Zhou Kai Yuan Electric Co., Ltd.
 1b65  The Hong Kong Standards and Testing Centre Ltd.
+1b71  Fushicai
+       3002  USBTV007 Video Grabber [EasyCAP]
 1b72  ATERGI TECHNOLOGY CO., LTD.
 1b73  Fresco Logic
        1000  xHC1 Controller
        648b  TEW-648UBM 802.11n 150Mbps Micro Wireless N Adapter [Realtek RTL8188CUS]
 2101  ActionStar
        0201  SIIG 4-to-2 Printer Switch
+2149  Advanced Silicon S.A.
+       211b  Touchscreen Controller
+       2703  TS58xxA/TC56xxA [CoolTouch]
 2162  Creative (?)
        2031  Network Blaster Wireless Adapter
        500c  DE5771 Modem Blaster
        4050  AirStick joystick
 2227  SAMWOO Enterprise
        3105  SKYDATA SKD-U100
+2232  Silicon Motion
+       1005  WebCam SCB-0385N
+       1028  WebCam SC-03FFL11939N
+       1029  WebCam SC-13HDL11939N
+       1037  WebCam SC-03FFM12339N
 2233  RadioShack Corporation
        6323  USB Electronic Scale
 2237  Kobo Inc.
        4161  eReader White
+228d  8D Technologies inc.
+       0001  Terminal Bike Key Reader
 22a6  Pie Digital, Inc.
        ffff  PieKey "beta" 4GB model 4E4F41482E4F5247 (SM3251Q BB)
 22b8  Motorola PCS
index abc6b5c8f9ab82460475d5b8a610269e82851c82..083a555a3a5c9c01147d21f09d307e39fd30294c 100644 (file)
@@ -9,26 +9,39 @@
 . $rc_functions
 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
 
+function flush_chains() {
+       iptables -F DHCPGREENINPUT
+       iptables -F DHCPGREENOUTPUT
+       iptables -F DHCPBLUEINPUT
+       iptables -F DHCPBLUEOUTPUT
+}
+
 case "$1" in
        start)
-               iptables -F DHCPBLUEINPUT
-               if [ -e /var/ipfire/dhcp/enable_green ]; then
+               flush_chains
+
+               if [ -n "${GREEN_DEV}" -a -e "/var/ipfire/dhcp/enable_green" ]; then
                        devices="${GREEN_DEV}"
+
+                       iptables -A DHCPGREENINPUT  -i "${GREEN_DEV}" -j DHCPINPUT
+                       iptables -A DHCPGREENOUTPUT -o "${GREEN_DEV}" -j DHCPOUTPUT
                fi
-               if [ -e /var/ipfire/dhcp/enable_blue ]; then
+               if [ -n "${BLUE_DEV}" -a -e "/var/ipfire/dhcp/enable_blue" ]; then
                        devices+=" ${BLUE_DEV}"
-                       
-                       iptables -A DHCPBLUEINPUT -p tcp --source-port 68 --destination-port 67 -i ${BLUE_DEV} -j ACCEPT > /dev/null 2>&1
-                       iptables -A DHCPBLUEINPUT -p udp --source-port 68 --destination-port 67 -i ${BLUE_DEV} -j ACCEPT > /dev/null 2>&1
-               fi              
-               
+
+                       iptables -A DHCPBLUEINPUT  -i "${BLUE_DEV}" -j DHCPINPUT
+                       iptables -A DHCPBLUEOUTPUT -o "${BLUE_DEV}" -j DHCPOUTPUT
+               fi
+
                boot_mesg "Starting DHCP Server..."
                loadproc /usr/sbin/dhcpd -q ${devices}
-               
+
                (sleep 5 && chmod 644 /var/run/dhcpd.pid) & # Fix because silly dhcpd creates its pid with mode 640
                ;;
 
        stop)
+               flush_chains
+
                boot_mesg "Stopping DHCP Server..."
                killproc -p /var/run/dhcpd.pid /usr/sbin/dhcpd
                if [ "$(ps -A | grep " dhcpd")" != "" ] ; then
index 00a70bd4a370d7eb360b3d80f4289c7da7dee309..0260d4ad6279185f79f57485ff4e7b78b8f7655a 100644 (file)
@@ -13,6 +13,7 @@
 case "$1" in
        start)
                boot_mesg "Starting fcron..."
+               chown cron:cron /var/spool/cron
                loadproc /usr/sbin/fcron -y
                # remove -y to reenable fcron logging
                ;;
index f0d9c492adc9bff9844fc41bc6968d82532a92c4..83717811010da5f1f89c16aa8b7b6ed020ee1b89 100644 (file)
@@ -143,6 +143,31 @@ iptables_init() {
                iptables -A ${i} -j CONNTRACK
        done
 
+       # Allow DHCP
+       iptables -N DHCPINPUT
+       iptables -A DHCPINPUT -p udp --sport 68 --dport 67 -j ACCEPT
+       iptables -A DHCPINPUT -p tcp --sport 68 --dport 67 -j ACCEPT
+
+       iptables -N DHCPOUTPUT
+       iptables -A DHCPOUTPUT -p udp --sport 67 --dport 68 -j ACCEPT
+       iptables -A DHCPOUTPUT -p tcp --sport 67 --dport 68 -j ACCEPT
+
+       # Allow DHCP on GREEN
+       iptables -N DHCPGREENINPUT
+       iptables -N DHCPGREENOUTPUT
+       if [ -n "${GREEN_DEV}" ]; then
+               iptables -A INPUT  -i "${GREEN_DEV}" -j DHCPGREENINPUT
+               iptables -A OUTPUT -o "${GREEN_DEV}" -j DHCPGREENOUTPUT
+       fi
+
+       # allow DHCP on BLUE to be turned on/off
+       iptables -N DHCPBLUEINPUT
+       iptables -N DHCPBLUEOUTPUT
+       if [ -n "${BLUE_DEV}" ]; then
+               iptables -A INPUT  -i "${BLUE_DEV}" -j DHCPBLUEINPUT
+               iptables -A OUTPUT -o "${BLUE_DEV}" -j DHCPBLUEOUTPUT
+       fi
+
        # trafic from ipsecX/TUN/TAP interfaces, before "-i GREEN_DEV" accept everything
        iptables -N IPSECINPUT
        iptables -N IPSECFORWARD
@@ -155,11 +180,7 @@ iptables_init() {
 
        # localhost and ethernet.
        iptables -A INPUT   -i $GREEN_DEV  -m conntrack --ctstate NEW -j ACCEPT ! -p icmp
-       
-       # allow DHCP on BLUE to be turned on/off
-       iptables -N DHCPBLUEINPUT 
-       iptables -A INPUT -j DHCPBLUEINPUT
-       
+
        # WIRELESS chains
        iptables -N WIRELESSINPUT
        iptables -A INPUT -m conntrack --ctstate NEW -j WIRELESSINPUT
index b09737e39526a8e041fe975818283873f97ee777..e0c66b6724a92d341e57fba719dadc0c78cefe5f 100644 (file)
@@ -22,6 +22,7 @@
 #Define some defaults
 INET_VLAN=7
 IPTV_VLAN=8
+ATM_DEV=0
 
 eval $(/usr/local/bin/readhash /var/ipfire/main/settings)
 if [ "$RRDLOG" == "" ]; then
@@ -170,17 +171,17 @@ case "${1}" in
 
 
                        if [ "$TYPE" == "pppoeatm" ] || [ "$TYPE" == "pptpatm" ]; then
-                               PPP_NIC=nas0            
-                               DEVICE=nas0
+                               PPP_NIC=nas${ATM_DEV}
+                               DEVICE=nas${ATM_DEV}
                                boot_mesg "Createing ATM-Bridge as $PPP_NIC ..."
-                               br2684ctl -c0 -e${ENCAP} -a0.${VPI}.${VCI} >/dev/null 2>&1 &
+                               br2684ctl -c${ATM_DEV} -e${ENCAP} -a${ATM_DEV}.${VPI}.${VCI} >/dev/null 2>&1 &
                                sleep 1
 
                                # use user-defined or green mac address for nas0
                                if [ -n "$MAC" ]; then
-                                       ip link set dev nas0 address ${MAC}
+                                       ip link set dev nas${ATM_DEV} address ${MAC}
                                else
-                                       ip link set dev nas0 address $(cat /sys/class/net/green0/address)
+                                       ip link set dev nas${ATM_DEV} address $(cat /sys/class/net/green0/address)
                                fi
 
                                if [ "$TYPE" == "pppoeatm" ]; then
index 8aba4ff1b4f3c60734b9834d00a415c7f3801208..9b4623eceb818dfee1277cc4dc759f80b7aad598 100644 (file)
@@ -35,7 +35,7 @@ if [ "x$MODE" = "xnone" ] ; then
 fi
 
 upsd=/usr/sbin/upsd
-upsdrvctl=/usr/bin/upsdrvctl
+upsdrvctl=/usr/sbin/upsdrvctl
 upsmon=/usr/sbin/upsmon
 log=">/dev/null 2>/dev/null"
 
index 0ed86616534c23d4bffcf1bae1e4c3b9b7986533..1d61a63990a492cfe3fcff112cc78d538b20a980 100644 (file)
@@ -43,7 +43,10 @@ case "$1" in
        (
                sleep 3
                pid=$(cat /var/run/sshd.pid 2>/dev/null)
-               [ -n "${pid}" ] && echo "-16" > "/proc/${pid}/oom_score_adj"
+               [ -n "${pid}" ] && [ -e "/proc/${pid}/oom_score_adj" ] && \
+                                       echo "-16" > "/proc/${pid}/oom_score_adj" || \
+                               [ -e "/proc/${pid}/oom_adj" ] && \
+                                       echo "-16" > "/proc/${pid}/oom_adj"
        ) &
         ;;
 
diff --git a/src/initscripts/init.d/stunnel b/src/initscripts/init.d/stunnel
new file mode 100644 (file)
index 0000000..9494b5d
--- /dev/null
@@ -0,0 +1,39 @@
+#!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/stunnel
+#
+# Description : Provides an SSL encryption wrapper.
+#
+########################################################################
+
+. /etc/sysconfig/rc
+. ${rc_functions}
+
+case "$1" in
+       start)
+               boot_mesg "Starting the Stunnel Daemon..."
+               loadproc /usr/bin/stunnel
+               ;;
+
+       stop)
+               boot_mesg "Stopping the Stunnel Daemon..."
+               killproc /usr/bin/stunnel
+               ;;
+
+       restart)
+               $0 stop
+               sleep 1
+               $0 start
+               ;;
+
+       status)
+               statusproc /usr/bin/stunnel
+               ;;
+
+       *)
+               echo "Usage: $0 {start|stop|restart|status}"
+               exit 1
+               ;;
+esac
+
+# End $rc_base/init.d/stunnel
index 6d15775f498f50feafa139e9ddf2639f9d3356c6..a21949ad7316658140d830e97ce3791d8c959761 100644 (file)
@@ -1,44 +1,31 @@
 #!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/watchdog
+#
+# Description : watchdog daemon initscript
+#
+########################################################################
 
 . /etc/sysconfig/rc
 . ${rc_functions}
 
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-test -x /usr/sbin/watchdog || exit 0
-
-# For configuration of the init script use the file
-# /etc/sysconfig/watchdog, do not edit this init script.
-
-# Set run_watchdog to 1 to start watchdog or 0 to disable it.
-run_watchdog=0
-
-# Specify additional watchdog options here (see manpage).
-watchdog_options=""
-
-# Specify module to load
-watchdog_module="none"
-
-[ -e /etc/sysconfig/watchdog ] && . /etc/sysconfig/watchdog
-
-DAEMON=/usr/sbin/watchdog
-WD_DAEMON=/usr/sbin/wd_keepalive
+if [ -e "/etc/sysconfig/watchdog" ]; then
+       . /etc/sysconfig/watchdog
+fi
 
 case "${1}" in
        start)
-               boot_mesg "Starting watchdog ..."
-               if [ $run_watchdog = 1 ]
-               then
-                       # do we have to load a module?
-                       [ ${watchdog_module:-none} != "none" ] && /sbin/modprobe $watchdog_module
-
-                       loadproc $DAEMON $watchdog_options
-               fi
+               if [ -n "${watchdog_module}" ]; then
+                       modprobe -q "${watchdog_module}" 2>/dev/null
+               fi
+
+               boot_mesg "Starting watchdog daemon..."
+               loadproc /usr/sbin/watchdog ${watchdog_options}
                ;;
 
        stop)
-               boot_mesg "Stopping watchdog ..."
-               killproc $DAEMON
+               boot_mesg "Stopping watchdog daemon..."
+               killproc /usr/sbin/watchdog
                ;;
 
        restart)
@@ -48,7 +35,7 @@ case "${1}" in
                ;;
 
        status)
-               statusproc $DAEMON
+               statusproc /usr/sbin/watchdog
                ;;
 
        *)
@@ -57,3 +44,4 @@ case "${1}" in
                ;;
 esac
 
+# End $rc_base/init.d/watchdog
index b503c8bb1747f38706517a4043255457811c85b0..e61f94dab54c59f0622ef09d144f25d6c8999562 100644 (file)
@@ -124,8 +124,6 @@ int main(int argc, char *argv[])
        }
 
        // Load common modules
-       mysystem("/sbin/modprobe iso9660"); // CDROM
-//     mysystem("/sbin/modprobe ext2"); // Boot patition
        mysystem("/sbin/modprobe vfat"); // USB key
        
        /* German is the default */
index 267823a1dcc14cf549147db2626e27111a444f56..c3350209c207a51574ea7a68cae5180b4b754b79 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2013  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2014  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -42,7 +42,7 @@ done
 # scan all Partitions on block devices
 for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;`
 do
-       for DEVICEP in $(ls /dev/${DEVICE}? | sed "s/\/dev\///" 2> /dev/null);do
+       for DEVICEP in $(ls /dev/${DEVICE}? 2>/dev/null | sed "s/\/dev\///");do
                mount /dev/${DEVICEP} /cdrom 2> /dev/null
                if [ -n "$(ls /cdrom/${version}.media 2>/dev/null)" ]; then
                        echo -n ${DEVICEP} > /tmp/source_device
@@ -58,7 +58,7 @@ done
 # scan all Partitions on raid/mmc devices
 for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;`
 do
-       for DEVICEP in $(ls /dev/${DEVICE}p? | sed "s/\/dev\///");do
+       for DEVICEP in $(ls /dev/${DEVICE}p? 2>/dev/null | sed "s/\/dev\///");do
                mount /dev/${DEVICEP} /cdrom 2> /dev/null
                if [ -n "$(ls /cdrom/${version}.media 2>/dev/null)" ]; then
                        echo -n ${DEVICEP} > /tmp/source_device
diff --git a/src/paks/stunnel/install.sh b/src/paks/stunnel/install.sh
new file mode 100644 (file)
index 0000000..efd3a9f
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 2 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+
+# Create Username and group.
+getent passwd stunnel >/dev/null || \
+      useradd -u 51 -g stunnel -d /var/lib/stunnel -s /bin/false \
+      -c "stunnel Daemon" stunnel
+
+extract_files
+ln -svf  ../init.d/stunnel /etc/rc.d/rc3.d/S65stunnel
+ln -svf  ../init.d/stunnel /etc/rc.d/rc0.d/K35stunnel
+ln -svf  ../init.d/stunnel /etc/rc.d/rc6.d/K35stunnel
+
+restore_backup ${NAME}
+start_service --background ${NAME}
diff --git a/src/paks/stunnel/uninstall.sh b/src/paks/stunnel/uninstall.sh
new file mode 100644 (file)
index 0000000..11f46d1
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 2 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+stop_service ${NAME}
+make_backup ${NAME}
+remove_files
+rm -rf /etc/rc.d/rc*.d/*stunnel
diff --git a/src/paks/stunnel/update.sh b/src/paks/stunnel/update.sh
new file mode 100644 (file)
index 0000000..89c40d0
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 2 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+./uninstall.sh
+./install.sh
diff --git a/src/patches/fireinfo-0001-Exclude-some-more-invalid-patterns.patch b/src/patches/fireinfo-0001-Exclude-some-more-invalid-patterns.patch
deleted file mode 100644 (file)
index fd1c525..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-From 220ffe76a48c72171d7724f7f602a2fdd8bbca6a Mon Sep 17 00:00:00 2001
-From: Michael Tremer <michael.tremer@ipfire.org>
-Date: Sat, 15 Feb 2014 18:37:54 +0100
-Subject: [PATCH] Exclude some more invalid patterns.
-
----
- src/fireinfo/system.py | 15 +++++++++++++--
- 1 file changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/src/fireinfo/system.py b/src/fireinfo/system.py
-index 40ff7b0..c875f96 100644
---- a/src/fireinfo/system.py
-+++ b/src/fireinfo/system.py
-@@ -44,12 +44,17 @@ INVALID_ID_STRINGS = (
-       "Chassis", "chassis",
-       "Not Applicable",
-       "None", "empty",
-+      "XXXXX",
-       "01010101-0101-0101-0101-010101010101",
-       "00020003-0004-0005-0006-000700080009",
-       "03000200-0400-0500-0006-000700080009",
-       "0000000", "00000000",
- )
-+INVALID_ID_STRINGS_EXACT_MATCH = (
-+      "NA",
-+)
-+
- class Singleton(type):
-       def __init__(cls, name, bases, dict):
-               super(Singleton, cls).__init__(name, bases, dict)
-@@ -234,12 +239,18 @@ class System(object):
-                       if id is None:
-                               continue
--                      for i in INVALID_ID_STRINGS:
--                              if i in id:
-+                      for i in INVALID_ID_STRINGS_EXACT_MATCH:
-+                              if id == i:
-                                       id = None
-                                       break
-                       if id:
-+                              for i in INVALID_ID_STRINGS:
-+                                      if i in id:
-+                                              id = None
-+                                              break
-+
-+                      if id:
-                               _ids.append(id)
-               ids = _ids
--- 
-1.8.3.1
-
index 4cf2a1ceb8364d1ed2b9cb109eeccdba237c44a9..ec5fc5d2fdedcdf0bac62045005490e5dbcf2623 100644 (file)
@@ -1514,10 +1514,10 @@ index 0000000..339631f
 +}
 diff --git a/net/netfilter/xt_layer7.c b/net/netfilter/xt_layer7.c
 new file mode 100644
-index 0000000..51bb747
+index 0000000..1573e9d
 --- /dev/null
 +++ b/net/netfilter/xt_layer7.c
-@@ -0,0 +1,625 @@
+@@ -0,0 +1,665 @@
 +/*
 +  Kernel module to match application layer (OSI layer 7) data in connections.
 +
@@ -1726,40 +1726,67 @@ index 0000000..51bb747
 +
 +static int can_handle(const struct sk_buff *skb)
 +{
-+      if(!ip_hdr(skb)) /* not IP */
++      struct iphdr iphdr_tmp;
++      struct iphdr *iphdr;
++      int offset;
++
++      if (!ip_hdr(skb))
 +              return 0;
-+      if(ip_hdr(skb)->protocol != IPPROTO_TCP &&
-+         ip_hdr(skb)->protocol != IPPROTO_UDP &&
-+         ip_hdr(skb)->protocol != IPPROTO_ICMP)
++
++      offset = ((uintptr_t)ip_hdr(skb)) - ((uintptr_t)skb->data);
++
++      iphdr = skb_header_pointer(skb, offset, sizeof(*iphdr), &iphdr_tmp);
++      if (!iphdr)
 +              return 0;
-+      return 1;
++
++      if (iphdr->protocol == IPPROTO_TCP ||
++          iphdr->protocol == IPPROTO_UDP ||
++          iphdr->protocol == IPPROTO_ICMP)
++              return 1;
++
++      return 0;
 +}
 +
-+/* Returns offset the into the skb->data that the application data starts */
 +static int app_data_offset(const struct sk_buff *skb)
 +{
-+      /* In case we are ported somewhere (ebtables?) where ip_hdr(skb)
-+      isn't set, this can be gotten from 4*(skb->data[0] & 0x0f) as well. */
-+      int ip_hl = 4*ip_hdr(skb)->ihl;
-+
-+      if( ip_hdr(skb)->protocol == IPPROTO_TCP ) {
-+              /* 12 == offset into TCP header for the header length field.
-+              Can't get this with skb->h.th->doff because the tcphdr
-+              struct doesn't get set when routing (this is confirmed to be
-+              true in Netfilter as well as QoS.) */
-+              int tcp_hl = 4*(skb->data[ip_hl + 12] >> 4);
-+
-+              return ip_hl + tcp_hl;
-+      } else if( ip_hdr(skb)->protocol == IPPROTO_UDP  ) {
-+              return ip_hl + 8; /* UDP header is always 8 bytes */
-+      } else if( ip_hdr(skb)->protocol == IPPROTO_ICMP ) {
-+              return ip_hl + 8; /* ICMP header is 8 bytes */
-+      } else {
-+              if (net_ratelimit())
-+                      printk(KERN_ERR "layer7: tried to handle unknown "
-+                                      "protocol!\n");
-+              return ip_hl + 8; /* something reasonable */
++      int offset;
++      struct iphdr iphdr_tmp;
++      struct iphdr *iphdr;
++      struct tcphdr tcphdr_tmp;
++      struct tcphdr *tcphdr;
++
++      if (!ip_hdr(skb))
++              return -1;
++
++      offset = ((uintptr_t)ip_hdr(skb)) - ((uintptr_t)skb->data);
++
++      iphdr = skb_header_pointer(skb, offset, sizeof(*iphdr), &iphdr_tmp);
++      if (!iphdr)
++              return -1;
++
++      offset += iphdr->ihl * 4;
++
++      if (iphdr->protocol == IPPROTO_TCP) {
++              tcphdr = skb_header_pointer(skb, offset, sizeof(*tcphdr),
++                                          &tcphdr_tmp);
++              if (!tcphdr)
++                      return -1;
++
++              offset += tcphdr->doff * 4;
++
++              return offset;
 +      }
++
++      if (iphdr->protocol == IPPROTO_UDP)
++              return offset + 8;
++
++      if (iphdr->protocol == IPPROTO_ICMP)
++              return offset + 8;
++
++      if (net_ratelimit())
++              pr_err(KERN_ERR "layer7: tried to handle unknown protocol!\n");
++
++      return offset + 8; /* something reasonable */
 +}
 +
 +/* handles whether there's a match when we aren't appending data anymore */
@@ -1849,13 +1876,39 @@ index 0000000..51bb747
 +      return length;
 +}
 +
++/* add the new app data to the buffer.  Return number of bytes added. */
++static int add_data(char *target, int offset, const struct sk_buff *skb)
++{
++      int length, length_sum = 0;
++      int data_start = app_data_offset(skb);
++      int remaining = skb->len - data_start;
++      int to_copy;
++      uint8_t buf[512];
++      uint8_t *data;
++
++      while ((offset < maxdatalen - 1) && (remaining > 0)) {
++              to_copy = min_t(int, remaining, sizeof(buf));
++
++              data = skb_header_pointer(skb, data_start, to_copy, buf);
++              length = add_datastr(target, offset, data, to_copy);
++
++              remaining -= to_copy;
++              data_start += to_copy;
++              offset += length;
++              length_sum += length;
++      }
++
++      return length_sum;
++}
++
 +/* add the new app data to the conntrack.  Return number of bytes added. */
-+static int add_data(struct nf_conn * master_conntrack,
-+                    char * app_data, int appdatalen)
++static int add_data_conntrack(struct nf_conn *master_conntrack,
++                            const struct sk_buff *skb)
 +{
 +      int length;
 +
-+      length = add_datastr(master_conntrack->layer7.app_data, master_conntrack->layer7.app_data_len, app_data, appdatalen);
++      length = add_data(master_conntrack->layer7.app_data,
++                        master_conntrack->layer7.app_data_len, skb);
 +      master_conntrack->layer7.app_data_len += length;
 +
 +      return length;
@@ -1911,20 +1964,20 @@ index 0000000..51bb747
 +static bool match(const struct sk_buff *skbin, struct xt_action_param *par)
 +{
 +      /* sidestep const without getting a compiler warning... */
-+      struct sk_buff * skb = (struct sk_buff *)skbin; 
++      struct sk_buff *skb = (struct sk_buff *)skbin;
 +
 +      const struct xt_layer7_info * info = par->matchinfo;
 +
 +      enum ip_conntrack_info master_ctinfo, ctinfo;
 +      struct nf_conn *master_conntrack, *conntrack;
-+      unsigned char *app_data, *tmp_data;
-+      unsigned int pattern_result, appdatalen;
++      unsigned char *tmp_data;
++      unsigned int pattern_result;
 +      regexp * comppattern;
 +
 +      /* Be paranoid/incompetent - lock the entire match function. */
 +      spin_lock_bh(&l7_lock);
 +
-+      if(!can_handle(skb)){
++      if (!can_handle(skbin)) {
 +              DPRINTK("layer7: This is some protocol I can't handle.\n");
 +              spin_unlock_bh(&l7_lock);
 +              return info->invert;
@@ -1933,8 +1986,9 @@ index 0000000..51bb747
 +      /* Treat parent & all its children together as one connection, except
 +      for the purpose of setting conntrack->layer7.app_proto in the actual
 +      connection. This makes /proc/net/ip_conntrack more satisfying. */
-+      if(!(conntrack = nf_ct_get(skb, &ctinfo)) ||
-+         !(master_conntrack=nf_ct_get(skb,&master_ctinfo))){
++      conntrack = nf_ct_get(skbin, &ctinfo);
++      master_conntrack = nf_ct_get(skbin, &master_ctinfo);
++      if (!conntrack || !master_conntrack) {
 +              DPRINTK("layer7: couldn't get conntrack.\n");
 +              spin_unlock_bh(&l7_lock);
 +              return info->invert;
@@ -1962,20 +2016,6 @@ index 0000000..51bb747
 +              return (pattern_result ^ info->invert);
 +      }
 +
-+      if(skb_is_nonlinear(skb)){
-+              if(skb_linearize(skb) != 0){
-+                      if (net_ratelimit())
-+                              printk(KERN_ERR "layer7: failed to linearize "
-+                                              "packet, bailing.\n");
-+                      spin_unlock_bh(&l7_lock);
-+                      return info->invert;
-+              }
-+      }
-+
-+      /* now that the skb is linearized, it's safe to set these. */
-+      app_data = skb->data + app_data_offset(skb);
-+      appdatalen = skb_tail_pointer(skb) - app_data;
-+
 +      /* the return value gets checked later, when we're ready to use it */
 +      comppattern = compile_and_cache(info->pattern, info->protocol);
 +
@@ -1988,7 +2028,7 @@ index 0000000..51bb747
 +              }
 +
 +              tmp_data[0] = '\0';
-+              add_datastr(tmp_data, 0, app_data, appdatalen);
++              add_data(tmp_data, 0, skbin);
 +              pattern_result = ((comppattern && regexec(comppattern, tmp_data)) ? 1 : 0);
 +
 +              kfree(tmp_data);
@@ -2023,7 +2063,7 @@ index 0000000..51bb747
 +
 +      if(!skb->cb[0]){
 +              int newbytes;
-+              newbytes = add_data(master_conntrack, app_data, appdatalen);
++              newbytes = add_data_conntrack(master_conntrack, skb);
 +
 +              if(newbytes == 0) { /* didn't add any data */
 +                      skb->cb[0] = 1;
diff --git a/src/patches/linux-3.10.37-rt2800usb_add_dlink_dwa137_usbid.patch b/src/patches/linux-3.10.37-rt2800usb_add_dlink_dwa137_usbid.patch
new file mode 100644 (file)
index 0000000..83142c8
--- /dev/null
@@ -0,0 +1,11 @@
+diff -Naur linux-3.10.37.org/drivers/net/wireless/rt2x00/rt2800usb.c linux-3.10.37/drivers/net/wireless/rt2x00/rt2800usb.c
+--- linux-3.10.37.org/drivers/net/wireless/rt2x00/rt2800usb.c  2014-04-14 15:42:31.000000000 +0200
++++ linux-3.10.37/drivers/net/wireless/rt2x00/rt2800usb.c      2014-04-25 10:25:12.796630526 +0200
+@@ -1175,6 +1175,7 @@
+       /* Belkin */
+       { USB_DEVICE(0x050d, 0x945b) },
+       /* D-Link */
++      { USB_DEVICE(0x2001, 0x3317) },
+       { USB_DEVICE(0x2001, 0x3c17) },
+       /* Panasonic */
+       { USB_DEVICE(0x083a, 0xb511) },
diff --git a/src/patches/linux-3.10.39-add_libertas_uap.patch b/src/patches/linux-3.10.39-add_libertas_uap.patch
new file mode 100644 (file)
index 0000000..be9a493
--- /dev/null
@@ -0,0 +1,5081 @@
+diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
+index f8f0156..42a0702 100644
+--- a/drivers/net/wireless/Kconfig
++++ b/drivers/net/wireless/Kconfig
+@@ -51,6 +51,14 @@ config LIBERTAS_THINFIRM_USB
+       ---help---
+         A driver for Marvell Libertas 8388 USB devices using thinfirm.
++config LIBERTAS_UAP
++      tristate "Marvell 8xxx Libertas UAP"
++      depends on MAC80211
++      depends on MMC
++      select FW_LOADER
++      ---help---
++        Driver for Marvell Libertas 8xxx micro AP.
++
+ config AIRO
+       tristate "Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards"
+       depends on ISA_DMA_API && (PCI || BROKEN)
+diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
+index 67156ef..475a1b3 100644
+--- a/drivers/net/wireless/Makefile
++++ b/drivers/net/wireless/Makefile
+@@ -37,6 +37,8 @@ obj-$(CONFIG_LIBERTAS)               += libertas/
+ obj-$(CONFIG_LIBERTAS_THINFIRM)       += libertas_tf/
++obj-$(CONFIG_LIBERTAS_UAP)    += libertas_uap/
++
+ obj-$(CONFIG_ADM8211) += adm8211.o
+ obj-$(CONFIG_MWL8K)   += mwl8k.o
+diff --git a/drivers/net/wireless/libertas_uap/Makefile b/drivers/net/wireless/libertas_uap/Makefile
+new file mode 100644
+index 0000000..821f2a4
+--- /dev/null
++++ b/drivers/net/wireless/libertas_uap/Makefile
+@@ -0,0 +1,6 @@
++obj-$(CONFIG_LIBERTAS_UAP) += uap8xxx.o
++
++uap8xxx-y += uap_main.o uap_sdio_mmc.o
++uap8xxx-$(CONFIG_PROC_FS) += uap_proc.o uap_debug.o
++
++EXTRA_CFLAGS += -DFPNUM='"52"' -DPXA3XX_DMA_ALIGN -DDEBUG_LEVEL1
+diff --git a/drivers/net/wireless/libertas_uap/uap_debug.c b/drivers/net/wireless/libertas_uap/uap_debug.c
+new file mode 100644
+index 0000000..a2f6dc9
+--- /dev/null
++++ b/drivers/net/wireless/libertas_uap/uap_debug.c
+@@ -0,0 +1,260 @@
++/** @file uap_debug.c
++  * @brief This file contains functions for debug proc file.
++  *
++  * Copyright (C) 2008-2009, Marvell International Ltd.
++  *
++  * This software file (the "File") is distributed by Marvell International
++  * Ltd. under the terms of the GNU General Public License Version 2, June 1991
++  * (the "License").  You may use, redistribute and/or modify this File in
++  * accordance with the terms and conditions of the License, a copy of which
++  * is available along with the File in the gpl.txt file or by writing to
++  * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++  * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
++  *
++  * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
++  * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
++  * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
++  * this warranty disclaimer.
++  *
++  */
++#ifdef CONFIG_PROC_FS
++#include  "uap_headers.h"
++
++/********************************************************
++              Local Variables
++********************************************************/
++
++#define item_size(n) (sizeof ((uap_adapter *)0)->n)
++#define item_addr(n) ((u32) &((uap_adapter *)0)->n)
++
++#define item_dbg_size(n) (sizeof (((uap_adapter *)0)->dbg.n))
++#define item_dbg_addr(n) ((u32) &(((uap_adapter *)0)->dbg.n))
++
++#define item_dev_size(n) (sizeof ((uap_dev_t *)0)->n)
++#define item_dev_addr(n) ((u32) &((uap_dev_t *)0)->n)
++
++/** MicroAp device offset */
++#define OFFSET_UAP_DEV                0x01
++/** Bluetooth adapter offset */
++#define OFFSET_UAP_ADAPTER    0x02
++
++struct debug_data
++{
++    /** Name */
++    char name[32];
++    /** Size */
++    u32 size;
++    /** Address */
++    u32 addr;
++    /** Offset */
++    u32 offset;
++    /** Flag */
++    u32 flag;
++};
++
++/* To debug any member of uap_adapter, simply add one line here.
++ */
++static struct debug_data items[] = {
++    {"cmd_sent", item_dev_size(cmd_sent), 0, item_dev_addr(cmd_sent),
++     OFFSET_UAP_DEV},
++    {"data_sent", item_dev_size(data_sent), 0, item_dev_addr(data_sent),
++     OFFSET_UAP_DEV},
++    {"IntCounter", item_size(IntCounter), 0, item_addr(IntCounter),
++     OFFSET_UAP_ADAPTER},
++    {"cmd_pending", item_size(cmd_pending), 0, item_addr(cmd_pending),
++     OFFSET_UAP_ADAPTER},
++    {"num_cmd_h2c_fail", item_dbg_size(num_cmd_host_to_card_failure), 0,
++     item_dbg_addr(num_cmd_host_to_card_failure), OFFSET_UAP_ADAPTER},
++    {"num_tx_h2c_fail", item_dbg_size(num_tx_host_to_card_failure), 0,
++     item_dbg_addr(num_tx_host_to_card_failure), OFFSET_UAP_ADAPTER},
++    {"psmode", item_size(psmode), 0, item_addr(psmode), OFFSET_UAP_ADAPTER},
++    {"ps_state", item_size(ps_state), 0, item_addr(ps_state),
++     OFFSET_UAP_ADAPTER},
++#ifdef DEBUG_LEVEL1
++    {"drvdbg", sizeof(drvdbg), (u32) & drvdbg, 0, 0}
++#endif
++};
++
++static int num_of_items = sizeof(items) / sizeof(items[0]);
++
++/********************************************************
++              Global Variables
++********************************************************/
++
++/********************************************************
++              Local Functions
++********************************************************/
++/**
++ *  @brief proc read function
++ *
++ *  @param page          pointer to buffer
++ *  @param s       read data starting position
++ *  @param off     offset
++ *  @param cnt     counter
++ *  @param eof     end of file flag
++ *  @param data    data to output
++ *  @return      number of output data
++ */
++static int uap_debug_proc_show(struct seq_file *s, void *data) {
++    int val = 0;
++    int i;
++
++    struct debug_data *d = (struct debug_data *)s->private;
++
++    if (MODULE_GET == 0)
++        return UAP_STATUS_FAILURE;
++
++    for (i = 0; i < num_of_items; i++) {
++        if (d[i].size == 1)
++            val = *((u8 *) d[i].addr);
++        else if (d[i].size == 2)
++            val = *((u16 *) d[i].addr);
++        else if (d[i].size == 4)
++            val = *((u32 *) d[i].addr);
++
++        seq_printf(s, "%s=%d\n", d[i].name, val);
++    }
++    MODULE_PUT;
++    return 0;
++}
++
++static int uap_debug_proc_open(struct inode* inode, struct file* file) {
++      return single_open(file, uap_debug_proc_show, PDE_DATA(inode));
++}
++
++/**
++ *  @brief proc write function
++ *
++ *  @param f     file pointer
++ *  @param buf     pointer to data buffer
++ *  @param cnt     data number to write
++ *  @param data    data to write
++ *  @return      number of data
++ */
++static ssize_t uap_debug_proc_write(struct file *f, const char __user *buf, size_t cnt, loff_t *data) {
++    int r, i;
++    char *pdata;
++    char *p;
++    char *p0;
++    char *p1;
++    char *p2;
++    struct debug_data *d = (struct debug_data *)PDE_DATA(file_inode(f));
++
++    if (MODULE_GET == 0)
++        return UAP_STATUS_FAILURE;
++
++    pdata = (char *) kmalloc(cnt, GFP_KERNEL);
++    if (pdata == NULL) {
++        MODULE_PUT;
++        return 0;
++    }
++
++    if (copy_from_user(pdata, buf, cnt)) {
++        PRINTM(INFO, "Copy from user failed\n");
++        kfree(pdata);
++        MODULE_PUT;
++        return 0;
++    }
++
++    p0 = pdata;
++    for (i = 0; i < num_of_items; i++) {
++        do {
++            p = strstr(p0, d[i].name);
++            if (p == NULL)
++                break;
++            p1 = strchr(p, '\n');
++            if (p1 == NULL)
++                break;
++            p0 = p1++;
++            p2 = strchr(p, '=');
++            if (!p2)
++                break;
++            p2++;
++            r = string_to_number(p2);
++            if (d[i].size == 1)
++                *((u8 *) d[i].addr) = (u8) r;
++            else if (d[i].size == 2)
++                *((u16 *) d[i].addr) = (u16) r;
++            else if (d[i].size == 4)
++                *((u32 *) d[i].addr) = (u32) r;
++            break;
++        } while (TRUE);
++    }
++    kfree(pdata);
++#ifdef DEBUG_LEVEL1
++    printk(KERN_ALERT "drvdbg = 0x%x\n", drvdbg);
++    printk(KERN_ALERT "INFO  (%08lx) %s\n", DBG_INFO,
++           (drvdbg & DBG_INFO) ? "X" : "");
++    printk(KERN_ALERT "WARN  (%08lx) %s\n", DBG_WARN,
++           (drvdbg & DBG_WARN) ? "X" : "");
++    printk(KERN_ALERT "ENTRY (%08lx) %s\n", DBG_ENTRY,
++           (drvdbg & DBG_ENTRY) ? "X" : "");
++    printk(KERN_ALERT "CMD_D (%08lx) %s\n", DBG_CMD_D,
++           (drvdbg & DBG_CMD_D) ? "X" : "");
++    printk(KERN_ALERT "DAT_D (%08lx) %s\n", DBG_DAT_D,
++           (drvdbg & DBG_DAT_D) ? "X" : "");
++    printk(KERN_ALERT "CMND  (%08lx) %s\n", DBG_CMND,
++           (drvdbg & DBG_CMND) ? "X" : "");
++    printk(KERN_ALERT "DATA  (%08lx) %s\n", DBG_DATA,
++           (drvdbg & DBG_DATA) ? "X" : "");
++    printk(KERN_ALERT "ERROR (%08lx) %s\n", DBG_ERROR,
++           (drvdbg & DBG_ERROR) ? "X" : "");
++    printk(KERN_ALERT "FATAL (%08lx) %s\n", DBG_FATAL,
++           (drvdbg & DBG_FATAL) ? "X" : "");
++    printk(KERN_ALERT "MSG   (%08lx) %s\n", DBG_MSG,
++           (drvdbg & DBG_MSG) ? "X" : "");
++#endif
++    MODULE_PUT;
++    return cnt;
++}
++
++static const struct file_operations uap_debug_proc_fops = {
++      .owner   = THIS_MODULE,
++      .open    = uap_debug_proc_open,
++      .read    = seq_read,
++      .llseek  = seq_lseek,
++      .release = single_release,
++      .write   = uap_debug_proc_write,
++};
++
++/********************************************************
++              Global Functions
++********************************************************/
++/**
++ *  @brief create debug proc file
++ *
++ *  @param priv          pointer uap_private
++ *  @param dev     pointer net_device
++ *  @return      N/A
++ */
++void
++uap_debug_entry(uap_private * priv, struct net_device *dev)
++{
++    int i;
++
++    if (priv->proc_entry == NULL)
++        return;
++
++    for (i = 0; i < num_of_items; i++) {
++        if (items[i].flag & OFFSET_UAP_ADAPTER)
++            items[i].addr = items[i].offset + (u32) priv->adapter;
++        if (items[i].flag & OFFSET_UAP_DEV)
++            items[i].addr = items[i].offset + (u32) & priv->uap_dev;
++    }
++    proc_create_data("debug", 0644, priv->proc_entry, &uap_debug_proc_fops,
++      &items[0]);
++}
++
++/**
++ *  @brief remove proc file
++ *
++ *  @param priv          pointer uap_private
++ *  @return      N/A
++ */
++void
++uap_debug_remove(uap_private * priv)
++{
++    remove_proc_entry("debug", priv->proc_entry);
++}
++
++#endif
+diff --git a/drivers/net/wireless/libertas_uap/uap_drv.h b/drivers/net/wireless/libertas_uap/uap_drv.h
+new file mode 100644
+index 0000000..5aa009f
+--- /dev/null
++++ b/drivers/net/wireless/libertas_uap/uap_drv.h
+@@ -0,0 +1,667 @@
++/** @file uap_drv.h
++  * @brief This file contains Linux OS related definitions and
++  * declarations, uAP driver
++  *
++  * Copyright (C) 2008-2009, Marvell International Ltd.
++  *
++  * This software file (the "File") is distributed by Marvell International
++  * Ltd. under the terms of the GNU General Public License Version 2, June 1991
++  * (the "License").  You may use, redistribute and/or modify this File in
++  * accordance with the terms and conditions of the License, a copy of which
++  * is available along with the File in the gpl.txt file or by writing to
++  * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++  * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
++  *
++  * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
++  * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
++  * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
++  * this warranty disclaimer.
++  *
++  */
++
++#ifndef _UAP_DRV_H
++#define _UAP_DRV_H
++
++/** Driver release version */
++#define DRIVER_VERSION                "26146"
++
++/** True */
++#ifndef       TRUE
++#define TRUE                  1
++#endif
++/** False */
++#ifndef       FALSE
++#define       FALSE                   0
++#endif
++
++/** Bit definitions */
++#ifndef BIT
++#define BIT(x)        (1UL << (x))
++#endif
++
++/** Dma addresses are 32-bits wide.  */
++#ifndef __ATTRIB_ALIGN__
++#define __ATTRIB_ALIGN__ __attribute__((aligned(4)))
++#endif
++
++/**  attribute pack */
++#ifndef __ATTRIB_PACK__
++#define __ATTRIB_PACK__ __attribute__ ((packed))
++#endif
++
++/** Debug Macro definition*/
++#ifdef        DEBUG_LEVEL1
++
++extern u32 drvdbg;
++
++/** Debug message control bit definition for drvdbg */
++/** Debug message */
++#define       DBG_MSG         BIT(0)
++/** Debug fatal message */
++#define DBG_FATAL     BIT(1)
++/** Debug error message */
++#define DBG_ERROR     BIT(2)
++/** Debug data message */
++#define DBG_DATA      BIT(3)
++/** Debug command message */
++#define DBG_CMND      BIT(4)
++
++/** Debug data */
++#define DBG_DAT_D     BIT(16)
++/** Debug command */
++#define DBG_CMD_D     BIT(17)
++
++/** Debug entry */
++#define DBG_ENTRY     BIT(28)
++/** Debug warning */
++#define DBG_WARN      BIT(29)
++/** Debug info */
++#define DBG_INFO      BIT(30)
++
++/** Print info */
++#define       PRINTM_INFO(msg...)  {if (drvdbg & DBG_INFO) printk(KERN_DEBUG msg);}
++/** Print warn message */
++#define       PRINTM_WARN(msg...)  {if (drvdbg & DBG_WARN) printk(KERN_DEBUG msg);}
++/** Print entry */
++#define       PRINTM_ENTRY(msg...) {if (drvdbg & DBG_ENTRY) printk(KERN_DEBUG msg);}
++/** Print cmd_d */
++#define       PRINTM_CMD_D(msg...) {if (drvdbg & DBG_CMD_D) printk(KERN_DEBUG msg);}
++/** Print data_d */
++#define       PRINTM_DAT_D(msg...) {if (drvdbg & DBG_DAT_D) printk(KERN_DEBUG msg);}
++/** Print command */
++#define       PRINTM_CMND(msg...)  {if (drvdbg & DBG_CMND) printk(KERN_DEBUG msg);}
++/** Print data */
++#define       PRINTM_DATA(msg...)  {if (drvdbg & DBG_DATA) printk(KERN_DEBUG msg);}
++/** Print error message */
++#define       PRINTM_ERROR(msg...) {if (drvdbg & DBG_ERROR) printk(KERN_DEBUG msg);}
++/** Print fatal message */
++#define       PRINTM_FATAL(msg...) {if (drvdbg & DBG_FATAL) printk(KERN_DEBUG msg);}
++/** Print message */
++#define       PRINTM_MSG(msg...)   {if (drvdbg & DBG_MSG) printk(KERN_ALERT msg);}
++/** Print level */
++#define       PRINTM(level,msg...) PRINTM_##level(msg)
++
++#else
++
++#define       PRINTM(level,msg...) do {} while (0)
++
++#endif /* DEBUG_LEVEL1 */
++
++/** Wait until a condition becomes true */
++#define ASSERT(cond)                                          \
++do {                                                          \
++      if (!(cond))                                            \
++              PRINTM(INFO, "ASSERT: %s, %s:%i\n",             \
++                     __FUNCTION__, __FILE__, __LINE__);       \
++} while(0)
++
++/** Log enrty point for debugging */
++#define       ENTER()                 PRINTM(ENTRY, "Enter: %s, %s:%i\n", __FUNCTION__, \
++                                                      __FILE__, __LINE__)
++/** Log exit point for debugging */
++#define       LEAVE()                 PRINTM(ENTRY, "Leave: %s, %s:%i\n", __FUNCTION__, \
++                                                      __FILE__, __LINE__)
++
++#ifdef        DEBUG_LEVEL1
++/** Dump buffer length */
++#define DBG_DUMP_BUF_LEN    64
++/** Maximum dump per line */
++#define MAX_DUMP_PER_LINE   16
++/** Data dump length */
++#define DATA_DUMP_LEN       32
++
++static inline void
++hexdump(char *prompt, u8 * buf, int len)
++{
++    int i;
++    char dbgdumpbuf[DBG_DUMP_BUF_LEN];
++    char *ptr = dbgdumpbuf;
++
++    printk(KERN_DEBUG "%s:\n", prompt);
++    for (i = 1; i <= len; i++) {
++        ptr += sprintf(ptr, "%02x ", *buf);
++        buf++;
++        if (i % MAX_DUMP_PER_LINE == 0) {
++            *ptr = 0;
++            printk(KERN_DEBUG "%s\n", dbgdumpbuf);
++            ptr = dbgdumpbuf;
++        }
++    }
++    if (len % MAX_DUMP_PER_LINE) {
++        *ptr = 0;
++        printk(KERN_DEBUG "%s\n", dbgdumpbuf);
++    }
++}
++
++/** Debug command */
++#define DBG_HEXDUMP_CMD_D(x,y,z)    {if (drvdbg & DBG_CMD_D) hexdump(x,y,z);}
++/** Debug data */
++#define DBG_HEXDUMP_DAT_D(x,y,z)    {if (drvdbg & DBG_DAT_D) hexdump(x,y,z);}
++/** Debug hexdump */
++#define       DBG_HEXDUMP(level,x,y,z)    DBG_HEXDUMP_##level(x,y,z)
++/** hexdump */
++#define HEXDUMP(x,y,z)              {if (drvdbg & DBG_INFO) hexdump(x,y,z);}
++#else
++/** Do nothing since debugging is not turned on */
++#define DBG_HEXDUMP(level,x,y,z)    do {} while (0)
++/** Do nothing since debugging is not turned on */
++#define HEXDUMP(x,y,z)              do {} while (0)
++#endif
++
++/**
++ * Typedefs
++ */
++/** Unsigned char */
++typedef u8 BOOLEAN;
++
++/*
++ * OS macro definitions
++ */
++/** OS macro to get time */
++#define os_time_get() jiffies
++
++/** OS macro to update transfer start time */
++#define UpdateTransStart(dev) { \
++      dev->trans_start = jiffies; \
++}
++
++/** Try to get a reference to the module */
++#define MODULE_GET    try_module_get(THIS_MODULE)
++/** Decrease module reference count */
++#define MODULE_PUT    module_put(THIS_MODULE)
++
++/** OS macro to initialize semaphore */
++#define OS_INIT_SEMAPHORE(x)  sema_init(x,1)
++/** OS macro to acquire blocking semaphore */
++#define OS_ACQ_SEMAPHORE_BLOCK(x)     down_interruptible(x)
++/** OS macro to acquire non-blocking semaphore */
++#define OS_ACQ_SEMAPHORE_NOBLOCK(x)   down_trylock(x)
++/** OS macro to release semaphore */
++#define OS_REL_SEMAPHORE(x)           up(x)
++
++static inline void
++os_sched_timeout(u32 millisec)
++{
++    set_current_state(TASK_INTERRUPTIBLE);
++    schedule_timeout((millisec * HZ) / 1000);
++}
++
++/** Maximum size of ethernet packet */
++#define MRVDRV_MAXIMUM_ETH_PACKET_SIZE        1514
++
++/** Maximum size of multicast list */
++#define MRVDRV_MAX_MULTICAST_LIST_SIZE        32
++
++/** Find minimum */
++#ifndef MIN
++#define MIN(a,b)              ((a) < (b) ? (a) : (b))
++#endif
++
++/** Find maximum */
++#ifndef MAX
++#define MAX(a,b)              ((a) > (b) ? (a) : (b))
++#endif
++
++/** Find number of elements */
++#ifndef NELEMENTS
++#define NELEMENTS(x) (sizeof(x)/sizeof(x[0]))
++#endif
++
++/** Buffer Constants */
++
++/** Size of command buffer */
++#define MRVDRV_SIZE_OF_CMD_BUFFER       (2 * 1024)
++
++/** Length of device length */
++#define DEV_NAME_LEN                  32
++
++/** Length of ethernet address */
++#ifndef       ETH_ALEN
++#define ETH_ALEN                      6
++#endif
++
++/** Default watchdog timeout */
++#define MRVDRV_DEFAULT_WATCHDOG_TIMEOUT (2 * HZ)
++
++/** Success */
++#define UAP_STATUS_SUCCESS         (0)
++/** Failure */
++#define UAP_STATUS_FAILURE         (-1)
++/** Not accepted */
++#define UAP_STATUS_NOT_ACCEPTED    (-2)
++
++/** Max loop count (* 100ms) for waiting device ready at init time */
++#define MAX_WAIT_DEVICE_READY_COUNT   50
++
++/** Tx high watermark. Stop Tx queue after this is crossed */
++#define TX_HIGH_WATERMARK   4
++/** Tx low watermark. Restart Tx queue after this is crossed */
++#define TX_LOW_WATERMARK    2
++
++/** Netlink protocol number */
++#define NETLINK_MARVELL     (MAX_LINKS - 1)
++/** Netlink maximum payload size */
++#define NL_MAX_PAYLOAD      1024
++/** Netlink multicast group number */
++#define NL_MULTICAST_GROUP  1
++
++/** 20 seconds */
++#define MRVDRV_TIMER_20S              20000
++
++/** Host Command option for wait till Send */
++#define HostCmd_OPTION_WAITFORSEND            0x0001
++/** Host Command option for wait for RSP */
++#define HostCmd_OPTION_WAITFORRSP             0x0002
++/** Host Command option for wait for RSP or Timeout */
++#define HostCmd_OPTION_WAITFORRSP_TIMEOUT     0x0003
++/** Host Command option for wait for RSP of sleep confirm */
++#define HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM   0x0004
++
++/** Sleep until a condition gets true or a timeout elapses */
++#define os_wait_interruptible_timeout(waitq, cond, timeout) \
++      wait_event_interruptible_timeout(waitq, cond, ((timeout) * HZ / 1000))
++
++/** Private command ID to Host command */
++#define       UAPHOSTCMD                      (SIOCDEVPRIVATE + 1)
++
++/** Private command ID to Power Mode */
++#define       UAP_POWER_MODE                  (SIOCDEVPRIVATE + 3)
++/** sleep_param */
++typedef struct _ps_sleep_param
++{
++    /** control bitmap */
++    u32 ctrl_bitmap;
++    /** minimum sleep period (micro second) */
++    u32 min_sleep;
++    /** maximum sleep period (micro second) */
++    u32 max_sleep;
++} ps_sleep_param;
++
++/** inactivity sleep_param */
++typedef struct _inact_sleep_param
++{
++    /** inactivity timeout (micro second) */
++    u32 inactivity_to;
++    /** miniumu awake period (micro second) */
++    u32 min_awake;
++    /** maximum awake period (micro second) */
++    u32 max_awake;
++} inact_sleep_param;
++
++/** flag for ps mode */
++#define PS_FLAG_PS_MODE                 1
++/** flag for sleep param */
++#define PS_FLAG_SLEEP_PARAM             2
++/** flag for inactivity sleep param */
++#define PS_FLAG_INACT_SLEEP_PARAM       4
++
++/** Disable power mode */
++#define PS_MODE_DISABLE                      0
++/** Enable periodic dtim ps */
++#define PS_MODE_PERIODIC_DTIM                1
++/** Enable inactivity ps */
++#define PS_MODE_INACTIVITY                   2
++
++/** sleep parameter */
++#define SLEEP_PARAMETER                     1
++/** inactivity sleep parameter */
++#define INACTIVITY_SLEEP_PARAMETER          2
++/** ps_mgmt */
++typedef struct _ps_mgmt
++{
++    /** flags for valid field */
++    u16 flags;
++    /** power mode */
++    u16 ps_mode;
++    /** sleep param */
++    ps_sleep_param sleep_param;
++    /** inactivity sleep param */
++    inact_sleep_param inact_param;
++} ps_mgmt;
++
++/** Semaphore structure */
++typedef struct semaphore SEMAPHORE;
++
++/** Global Varibale Declaration */
++/** Private data structure of the device */
++typedef struct _uap_private uap_private;
++/** Adapter data structure of the device */
++typedef struct _uap_adapter uap_adapter;
++/** private structure */
++extern uap_private *uappriv;
++
++/** ENUM definition*/
++
++/** Hardware status codes */
++typedef enum _HARDWARE_STATUS
++{
++    HWReady,
++    HWInitializing,
++    HWReset,
++    HWClosing,
++    HWNotReady
++} HARDWARE_STATUS;
++
++/** info for debug purpose */
++typedef struct _uap_dbg
++{
++        /** Number of host to card command failures */
++    u32 num_cmd_host_to_card_failure;
++        /** Number of host to card Tx failures */
++    u32 num_tx_host_to_card_failure;
++} uap_dbg;
++
++/** Set thread state */
++#define OS_SET_THREAD_STATE(x)                set_current_state(x)
++
++typedef struct
++{
++    /** Task */
++    struct task_struct *task;
++    /** Queue */
++    wait_queue_head_t waitQ;
++    /** PID */
++    pid_t pid;
++    /** Private structure */
++    void *priv;
++} uap_thread;
++
++static inline void
++uap_activate_thread(uap_thread * thr)
++{
++        /** Record the thread pid */
++    thr->pid = current->pid;
++
++        /** Initialize the wait queue */
++    init_waitqueue_head(&thr->waitQ);
++}
++
++static inline void
++uap_deactivate_thread(uap_thread * thr)
++{
++    thr->pid = 0;
++    return;
++}
++
++static inline void
++uap_create_thread(int (*uapfunc) (void *), uap_thread * thr, char *name)
++{
++    thr->task = kthread_run(uapfunc, thr, "%s", name);
++}
++
++static inline int
++uap_terminate_thread(uap_thread * thr)
++{
++    /* Check if the thread is active or not */
++    if (!thr->pid)
++        return -1;
++    kthread_stop(thr->task);
++    return 0;
++}
++
++/** Data structure for the Marvell uAP device */
++typedef struct _uap_dev
++{
++        /** device name */
++    char name[DEV_NAME_LEN];
++        /** card pointer */
++    void *card;
++        /** IO port */
++    u32 ioport;
++        /** Rx unit */
++    u8 rx_unit;
++        /** Data sent:
++          TRUE - Data is sent to fw, no Tx Done received
++          FALSE - Tx done received for previous Tx */
++    BOOLEAN data_sent;
++        /** CMD sent:
++          TRUE - CMD is sent to fw, no CMD Done received
++          FALSE - CMD done received for previous CMD */
++    BOOLEAN cmd_sent;
++        /** netdev pointer */
++    struct net_device *netdev;
++} uap_dev_t, *puap_dev_t;
++
++/** Private structure for the MV device */
++struct _uap_private
++{
++        /** Device open */
++    int open;
++
++        /** Device adapter structure */
++    uap_adapter *adapter;
++        /** Device structure */
++    uap_dev_t uap_dev;
++
++        /** Net device statistics structure */
++    struct net_device_stats stats;
++
++        /** Number of Tx timeouts */
++    u32 num_tx_timeout;
++
++        /** Media connection status */
++    BOOLEAN MediaConnected;
++
++#ifdef CONFIG_PROC_FS
++    struct proc_dir_entry *proc_uap;
++    struct proc_dir_entry *proc_entry;
++#endif                          /* CONFIG_PROC_FS */
++
++        /** Firmware helper */
++    const struct firmware *fw_helper;
++        /** Firmware */
++    const struct firmware *firmware;
++        /** Hotplug device */
++    struct device *hotplug_device;
++        /** thread to service interrupts */
++    uap_thread MainThread;
++        /** Driver lock */
++    spinlock_t driver_lock;
++        /** Driver lock flags */
++    ulong driver_flags;
++
++};
++
++/** PS_CMD_ConfirmSleep */
++typedef struct _PS_CMD_ConfirmSleep
++{
++        /** SDIO Length */
++    u16 SDLen;
++    /** SDIO Type */
++    u16 SDType;
++        /** Command */
++    u16 Command;
++        /** Size */
++    u16 Size;
++        /** Sequence number */
++    u16 SeqNum;
++        /** Result */
++    u16 Result;
++} __ATTRIB_PACK__ PS_CMD_ConfirmSleep, *PPS_CMD_ConfirmSleep;
++
++/** Wlan Adapter data structure*/
++struct _uap_adapter
++{
++        /** Power save confirm sleep command */
++    PS_CMD_ConfirmSleep PSConfirmSleep;
++        /** Device status */
++    HARDWARE_STATUS HardwareStatus;
++        /** Interrupt counter */
++    u32 IntCounter;
++        /** Tx packet queue */
++    struct sk_buff_head tx_queue;
++        /** Cmd packet queue */
++    struct sk_buff_head cmd_queue;
++        /** Command sequence number */
++    u16 SeqNum;
++        /** Command buffer */
++    u8 *CmdBuf;
++        /** cmd pending flag */
++    u8 cmd_pending;
++        /** cmd wait option */
++    u8 cmd_wait_option;
++        /** Command buffer length */
++    u32 CmdSize;
++        /** Command wait queue */
++    wait_queue_head_t cmdwait_q __ATTRIB_ALIGN__;
++        /** Command wait queue state flag */
++    u8 CmdWaitQWoken;
++        /** PnP support */
++    BOOLEAN SurpriseRemoved;
++        /** Debug */
++    uap_dbg dbg;
++        /** Netlink kernel socket */
++    struct sock *nl_sk;
++        /** Semaphore for CMD */
++    SEMAPHORE CmdSem;
++         /** Power Save mode */
++    u8 psmode;
++        /** Power Save state */
++    u8 ps_state;
++        /** Number of wakeup tries */
++    u32 WakeupTries;
++};
++
++static inline int
++os_upload_rx_packet(uap_private * priv, struct sk_buff *skb)
++{
++    skb->dev = priv->uap_dev.netdev;
++    skb->protocol = eth_type_trans(skb, priv->uap_dev.netdev);
++    skb->ip_summed = CHECKSUM_UNNECESSARY;
++    if (in_interrupt())
++        netif_rx(skb);
++    else
++        netif_rx_ni(skb);
++    return 0;
++}
++
++/*
++ *  netif carrier_on/off and start(wake)/stop_queue handling
++ */
++static inline void
++os_carrier_on(uap_private * priv)
++{
++    if (!netif_carrier_ok(priv->uap_dev.netdev) &&
++        (priv->MediaConnected == TRUE)) {
++        netif_carrier_on(priv->uap_dev.netdev);
++    }
++}
++
++static inline void
++os_carrier_off(uap_private * priv)
++{
++    if (netif_carrier_ok(priv->uap_dev.netdev)) {
++        netif_carrier_off(priv->uap_dev.netdev);
++    }
++}
++
++static inline void
++os_start_queue(uap_private * priv)
++{
++    if (netif_queue_stopped(priv->uap_dev.netdev) &&
++        (priv->MediaConnected == TRUE)) {
++        netif_wake_queue(priv->uap_dev.netdev);
++    }
++}
++
++static inline void
++os_stop_queue(uap_private * priv)
++{
++    if (!netif_queue_stopped(priv->uap_dev.netdev)) {
++        netif_stop_queue(priv->uap_dev.netdev);
++    }
++}
++
++/** Interface specific header */
++#define INTF_HEADER_LEN         4
++
++/** headroom alignment for tx packet */
++#define HEADER_ALIGNMENT      8
++
++/** The number of times to try when polling for status bits */
++#define MAX_POLL_TRIES                        100
++
++/** Length of SNAP header */
++#define MRVDRV_SNAP_HEADER_LEN          8
++
++/** Extra length of Tx packet buffer */
++#define EXTRA_LEN     36
++
++/** Buffer size for ethernet Tx packets */
++#define MRVDRV_ETH_TX_PACKET_BUFFER_SIZE \
++      (ETH_FRAME_LEN + sizeof(TxPD) + EXTRA_LEN)
++
++/** Buffer size for ethernet Rx packets */
++#define MRVDRV_ETH_RX_PACKET_BUFFER_SIZE \
++      (ETH_FRAME_LEN + sizeof(RxPD) \
++       + MRVDRV_SNAP_HEADER_LEN + EXTRA_LEN)
++
++/** Packet type: data, command & event */
++typedef enum _mv_type
++{
++    MV_TYPE_DAT = 0,
++    MV_TYPE_CMD = 1,
++    MV_TYPE_EVENT = 3
++} mv_type;
++
++/** Disable interrupt */
++#define OS_INT_DISABLE        spin_lock_irqsave(&priv->driver_lock, priv->driver_flags)
++/** Enable interrupt */
++#define       OS_INT_RESTORE  spin_unlock_irqrestore(&priv->driver_lock, priv->driver_flags)
++
++int uap_process_rx_packet(uap_private * priv, struct sk_buff *skb);
++void uap_interrupt(uap_private * priv);
++uap_private *uap_add_card(void *card);
++int uap_remove_card(void *card);
++int uap_process_event(uap_private * priv, u8 * payload, uint len);
++int uap_soft_reset(uap_private * priv);
++int uap_process_sleep_confirm_resp(uap_private * priv, u8 * resp, int resp_len);
++
++#ifdef CONFIG_PROC_FS
++/** The proc fs interface */
++void uap_proc_entry(uap_private * priv, struct net_device *dev);
++void uap_proc_remove(uap_private * priv);
++int string_to_number(char *s);
++void uap_debug_entry(uap_private * priv, struct net_device *dev);
++void uap_debug_remove(uap_private * priv);
++#endif /* CONFIG_PROC_FS */
++
++int sbi_register(void);
++
++void sbi_unregister(void);
++int sbi_register_dev(uap_private * priv);
++int sbi_unregister_dev(uap_private * priv);
++int sbi_prog_fw_w_helper(uap_private *);
++
++int sbi_host_to_card(uap_private * priv, u8 * payload, u16 nb);
++int sbi_enable_host_int(uap_private * priv);
++int sbi_disable_host_int(uap_private * priv);
++
++int sbi_get_int_status(uap_private * priv, u8 * ireg);
++/** Check firmware status */
++int sbi_check_fw_status(uap_private *, int);
++int sbi_prog_helper(uap_private *);
++
++int sbi_wakeup_firmware(uap_private * priv);
++
++#endif /* _UAP_DRV_H */
+diff --git a/drivers/net/wireless/libertas_uap/uap_fw.h b/drivers/net/wireless/libertas_uap/uap_fw.h
+new file mode 100644
+index 0000000..23a40d6
+--- /dev/null
++++ b/drivers/net/wireless/libertas_uap/uap_fw.h
+@@ -0,0 +1,359 @@
++/** @file uap_fw.h
++ *
++ * @brief This file contains firmware specific defines.
++ *
++ * Copyright (C) 2008-2009, Marvell International Ltd.
++ *
++ * This software file (the "File") is distributed by Marvell International
++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
++ * (the "License").  You may use, redistribute and/or modify this File in
++ * accordance with the terms and conditions of the License, a copy of which
++ * is available along with the File in the gpl.txt file or by writing to
++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
++ *
++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
++ * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
++ * this warranty disclaimer.
++ *
++ */
++/********************************************************
++Change log:
++      02/26/08: Initial creation
++********************************************************/
++
++#ifndef _UAP_FW_H
++#define _UAP_FW_H
++
++/** uap upload size */
++#define       UAP_UPLD_SIZE                   2312
++/** Packet type Micro AP */
++#define PKT_TYPE_MICROAP              1
++/** Packet type client */
++#define PKT_TYPE_CLIENT                       0
++
++/** TxPD descriptor */
++typedef struct _TxPD
++{
++        /** Bss Type */
++    u8 BssType;
++        /** Bss num */
++    u8 BssNum;
++        /** Tx packet length */
++    u16 TxPktLength;
++        /** Tx packet offset */
++    u16 TxPktOffset;
++        /** Tx packet type */
++    u16 TxPktType;
++        /** Tx Control */
++    u32 TxControl;
++        /** reserved */
++    u32 reserved[2];
++} __ATTRIB_PACK__ TxPD, *PTxPD;
++
++/** RxPD Descriptor */
++typedef struct _RxPD
++{
++        /** Bss Type */
++    u8 BssType;
++        /** Bss Num */
++    u8 BssNum;
++        /** Tx packet length */
++    u16 RxPktLength;
++        /** Tx packet offset */
++    u16 RxPktOffset;
++} __ATTRIB_PACK__ RxPD, *PRxPD;
++
++#ifdef BIG_ENDIAN
++/** Convert from 16 bit little endian format to CPU format */
++#define uap_le16_to_cpu(x) le16_to_cpu(x)
++/** Convert from 32 bit little endian format to CPU format */
++#define uap_le32_to_cpu(x) le32_to_cpu(x)
++/** Convert from 64 bit little endian format to CPU format */
++#define uap_le64_to_cpu(x) le64_to_cpu(x)
++/** Convert to 16 bit little endian format from CPU format */
++#define uap_cpu_to_le16(x) cpu_to_le16(x)
++/** Convert to 32 bit little endian format from CPU format */
++#define uap_cpu_to_le32(x) cpu_to_le32(x)
++/** Convert to 64 bit little endian format from CPU format */
++#define uap_cpu_to_le64(x) cpu_to_le64(x)
++
++/** Convert TxPD to little endian format from CPU format */
++#define endian_convert_TxPD(x);                                         \
++    {                                                                   \
++        (x)->TxPktLength = uap_cpu_to_le16((x)->TxPktLength);         \
++        (x)->TxPktOffset = uap_cpu_to_le32((x)->TxPktOffset);         \
++        (x)->TxControl = uap_cpu_to_le32((x)->TxControl);              \
++        (x)->TxPktType = uap_cpu_to_le32((x)->TxPktType);             \
++    }
++
++/** Convert RxPD from little endian format to CPU format */
++#define endian_convert_RxPD(x);                                       \
++    {                                                                 \
++        (x)->RxPktLength = uap_le16_to_cpu((x)->RxPktLength);         \
++        (x)->RxPktOffset = uap_le32_to_cpu((x)->RxPktOffset);         \
++    }
++#else /* BIG_ENDIAN */
++/** Do nothing */
++#define uap_le16_to_cpu(x) x
++/** Do nothing */
++#define uap_le32_to_cpu(x) x
++/** Do nothing */
++#define uap_le64_to_cpu(x) x
++/** Do nothing */
++#define uap_cpu_to_le16(x) x
++/** Do nothing */
++#define uap_cpu_to_le32(x) x
++/** Do nothing */
++#define uap_cpu_to_le64(x) x
++
++/** Do nothing */
++#define endian_convert_TxPD(x)
++/** Do nothing */
++#define endian_convert_RxPD(x)
++#endif /* BIG_ENDIAN */
++
++/** Host Command ID : Function initialization */
++#define HostCmd_CMD_FUNC_INIT                 0x00a9
++/** Host Command ID : Function shutdown */
++#define HostCmd_CMD_FUNC_SHUTDOWN             0x00aa
++
++/** Host Command id: SYS_INFO  */
++#define HOST_CMD_APCMD_SYS_INFO               0x00ae
++/** Host Command id: SYS_RESET  */
++#define HOST_CMD_APCMD_SYS_RESET              0x00af
++/** Host Command id: SYS_CONFIGURE  */
++#define HOST_CMD_APCMD_SYS_CONFIGURE          0x00b0
++/** Host Command id: BSS_START  */
++#define HOST_CMD_APCMD_BSS_START              0x00b1
++/** Host Command id: SYS_STOP  */
++#define HOST_CMD_APCMD_BSS_STOP               0x00b2
++/** Host Command id: STA_LIST  */
++#define HOST_CMD_APCMD_STA_LIST               0x00b3
++/** Host Command id: STA_FILTER_TABLE  */
++#define HOST_CMD_APCMD_STA_FILTER_TABLE       0x00b4
++/** Host Command id: STA_DEAUTH  */
++#define HOST_CMD_APCMD_STA_DEAUTH             0x00b5
++/** Host Command id: SOFT_RESET  */
++#define HOST_CMD_APCMD_SOFT_RESET             0x00d5
++/** Host Command id: POWER_MGMT_EXT  */
++#define HOST_CMD_POWER_MGMT_EXT               0x00ef
++/** Host Command id: SLEEP_CONFIRM*/
++#define HOST_CMD_SLEEP_CONFIRM              0x00d8
++
++/** TLV type : SSID */
++#define TLV_TYPE_SSID                         0x0000
++/** TLV type : Rates */
++#define TLV_TYPE_RATES                                0x0001
++/** TLV type : PHY DS */
++#define TLV_TYPE_PHY_DS                               0x0003
++
++/** TLV Id : Base id */
++#define PROPRIETARY_TLV_BASE_ID               0x0100
++/** TLV Id : AP_MAC_ADDRESS */
++#define MRVL_AP_MAC_ADDRESS_TLV_ID      (PROPRIETARY_TLV_BASE_ID + 43)
++/** TLV Id : Beacon period */
++#define MRVL_BEACON_PERIOD_TLV_ID       (PROPRIETARY_TLV_BASE_ID + 44)
++/** TLV Id : Dtim period */
++#define MRVL_DTIM_PERIOD_TLV_ID         (PROPRIETARY_TLV_BASE_ID + 45)
++/** TLV Id : Basic rates */
++#define MRVL_BASIC_RATES_TLV_ID         (PROPRIETARY_TLV_BASE_ID + 46)
++/** TLV Id : Tx Power */
++#define MRVL_TX_POWER_TLV_ID            (PROPRIETARY_TLV_BASE_ID + 47)
++/** TLV Id : Broadcast SSID control */
++#define MRVL_BCAST_SSID_CTL_TLV_ID      (PROPRIETARY_TLV_BASE_ID + 48)
++/** TLV Id : Preamble control */
++#define MRVL_PREAMBLE_CTL_TLV_ID        (PROPRIETARY_TLV_BASE_ID + 49)
++/** TLV Id : Antenna control */
++#define MRVL_ANTENNA_CTL_TLV_ID         (PROPRIETARY_TLV_BASE_ID + 50)
++/** TLV Id : RTS threshold */
++#define MRVL_RTS_THRESHOLD_TLV_ID       (PROPRIETARY_TLV_BASE_ID + 51)
++/** TLV Id : Radio control */
++#define MRVL_RADIO_CTL_TLV_ID           (PROPRIETARY_TLV_BASE_ID + 52)
++/** TLV Id : TX data rate */
++#define MRVL_TX_DATA_RATE_TLV_ID        (PROPRIETARY_TLV_BASE_ID + 53)
++/** TLV Id : Packet forward control */
++#define MRVL_PKT_FWD_CTL_TLV_ID         (PROPRIETARY_TLV_BASE_ID + 54)
++/** TLV Id : STA info */
++#define MRVL_STA_INFO_TLV_ID            (PROPRIETARY_TLV_BASE_ID + 55)
++/** TLV Id : STA MAC address filter */
++#define MRVL_STA_MAC_ADDR_FILTER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 56)
++/** TLV Id : STA ageout timer */
++#define MRVL_STA_AGEOUT_TIMER_TLV_ID    (PROPRIETARY_TLV_BASE_ID + 57)
++/** TLV Id : Security config */
++#define MRVL_SECURITY_CFG_TLV_ID        (PROPRIETARY_TLV_BASE_ID + 58)
++/** TLV Id : WEP KEY */
++#define MRVL_WEP_KEY_TLV_ID             (PROPRIETARY_TLV_BASE_ID + 59)
++/** TLV Id : WPA Passphrase */
++#define MRVL_WPA_PASSPHRASE_TLV_ID      (PROPRIETARY_TLV_BASE_ID + 60)
++
++/** Action get */
++#define ACTION_GET    0
++/** Action set */
++#define ACTION_SET    1
++/** Length of ethernet address */
++#ifndef       ETH_ALEN
++#define ETH_ALEN                      6
++#endif
++
++/** HostCmd_DS_GEN */
++typedef struct
++{
++    /** Command */
++    u16 Command;
++    /** Size */
++    u16 Size;
++    /** Sequence number */
++    u16 SeqNum;
++    /** Result */
++    u16 Result;
++} __ATTRIB_PACK__ HostCmd_DS_GEN;
++
++/** Size of HostCmd_DS_GEN */
++#define S_DS_GEN    sizeof(HostCmd_DS_GEN)
++
++/** _HostCmd_HEADER*/
++typedef struct
++{
++    /** Command Header : Command */
++    u16 Command;
++    /** Command Header : Size */
++    u16 Size;
++} __ATTRIB_PACK__ HostCmd_HEADER;
++
++/** HostCmd_SYS_CONFIG */
++typedef struct _HostCmd_SYS_CONFIG
++{
++        /** CMD Action GET/SET*/
++    u16 Action;
++        /** Tlv buffer */
++    u8 TlvBuffer[0];
++} __ATTRIB_PACK__ HostCmd_SYS_CONFIG;
++
++/** HostCmd_DS_POWER_MGMT_EXT */
++typedef struct _HostCmd_DS_POWER_MGMT_EXT
++{
++    /** CMD Action Get/Set*/
++    u16 action;
++    /** power mode */
++    u16 power_mode;
++} __ATTRIB_PACK__ HostCmd_DS_POWER_MGMT_EXT;
++
++/** _HostCmd_DS_COMMAND*/
++typedef struct _HostCmd_DS_COMMAND
++{
++
++        /** Command Header : Command */
++    u16 Command;
++        /** Command Header : Size */
++    u16 Size;
++        /** Command Header : Sequence number */
++    u16 SeqNum;
++        /** Command Header : Result */
++    u16 Result;
++        /** Command Body */
++    union
++    {
++        HostCmd_SYS_CONFIG sys_config;
++        HostCmd_DS_POWER_MGMT_EXT pm_cfg;
++
++    } params;
++} __ATTRIB_PACK__ HostCmd_DS_COMMAND;
++
++/** MrvlIEtypesHeader_*/
++typedef struct _MrvlIEtypesHeader
++{
++    /** Header type */
++    u16 Type;
++    /** Header length */
++    u16 Len;
++} __ATTRIB_PACK__ MrvlIEtypesHeader_t;
++
++/** MrvlIEtypes_Data_t */
++typedef struct _MrvlIEtypes_Data_t
++{
++    /** Header */
++    MrvlIEtypesHeader_t Header;
++    /** Data */
++    u8 Data[1];
++} __ATTRIB_PACK__ MrvlIEtypes_Data_t;
++
++/** MrvlIEtypes_ChanListParamSet_t */
++typedef struct _MrvlIEtypes_MacAddr_t
++{
++    /** Header */
++    MrvlIEtypesHeader_t Header;
++    /** AP MAC address */
++    u8 ApMacAddr[ETH_ALEN];
++} __ATTRIB_PACK__ MrvlIEtypes_MacAddr_t;
++
++/** Event ID: BSS started */
++#define MICRO_AP_EV_ID_BSS_START    46
++
++/** Event ID: BSS idle event */
++#define MICRO_AP_EV_BSS_IDLE       67
++
++/** Event ID: BSS active event */
++#define MICRO_AP_EV_BSS_ACTIVE             68
++
++/** Event ID: PS_AWAKE */
++#define EVENT_PS_AWAKE     0x0a
++
++/** Event ID: PS_SLEEP */
++#define EVENT_PS_SLEEP     0x0b
++
++/** PS_STATE */
++typedef enum _PS_STATE
++{
++    PS_STATE_AWAKE,
++    PS_STATE_PRE_SLEEP,
++    PS_STATE_SLEEP
++} PS_STATE;
++
++/** TLV type: AP Sleep param */
++#define TLV_TYPE_AP_SLEEP_PARAM         (PROPRIETARY_TLV_BASE_ID + 106)
++/** TLV type: AP Inactivity Sleep param */
++#define TLV_TYPE_AP_INACT_SLEEP_PARAM   (PROPRIETARY_TLV_BASE_ID + 107)
++
++/** MrvlIEtypes_sleep_param_t */
++typedef struct _MrvlIEtypes_sleep_param_t
++{
++    /** Header */
++    MrvlIEtypesHeader_t header;
++    /** control bitmap */
++    u32 ctrl_bitmap;
++    /** min_sleep */
++    u32 min_sleep;
++    /** max_sleep */
++    u32 max_sleep;
++} __ATTRIB_PACK__ MrvlIEtypes_sleep_param_t;
++
++/** MrvlIEtypes_inact_sleep_param_t */
++typedef struct _MrvlIEtypes_inact_sleep_param_t
++{
++    /** Header */
++    MrvlIEtypesHeader_t header;
++    /** inactivity timeout */
++    u32 inactivity_to;
++    /** min_awake */
++    u32 min_awake;
++    /** max_awake */
++    u32 max_awake;
++} __ATTRIB_PACK__ MrvlIEtypes_inact_sleep_param_t;
++
++/** AP_Event */
++typedef struct _AP_Event
++{
++    /** Event ID */
++    u32 EventId;
++    /*
++     * Reserved for STA_ASSOCIATED event and contains
++     * status information for the MIC_COUNTERMEASURES event.
++     */
++    /** Reserved/status */
++    u16 status;
++    /** AP MAC address */
++    u8 MacAddr[ETH_ALEN];
++} __ATTRIB_PACK__ AP_Event;
++#endif /* _UAP_FW_H */
+diff --git a/drivers/net/wireless/libertas_uap/uap_headers.h b/drivers/net/wireless/libertas_uap/uap_headers.h
+new file mode 100644
+index 0000000..fa09af4
+--- /dev/null
++++ b/drivers/net/wireless/libertas_uap/uap_headers.h
+@@ -0,0 +1,64 @@
++/** @file uap_headers.h
++ *
++ * @brief This file contains all the necessary include file.
++ *
++  * Copyright (C) 2008-2009, Marvell International Ltd.
++ *
++ * This software file (the "File") is distributed by Marvell International
++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
++ * (the "License").  You may use, redistribute and/or modify this File in
++ * accordance with the terms and conditions of the License, a copy of which
++ * is available along with the File in the gpl.txt file or by writing to
++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
++ *
++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
++ * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
++ * this warranty disclaimer.
++ *
++ */
++#ifndef _UAP_HEADERS_H
++#define _UAP_HEADERS_H
++
++/* Linux header files */
++#include    <linux/kernel.h>
++#include    <linux/module.h>
++#include    <linux/init.h>
++#include    <linux/version.h>
++#include    <linux/param.h>
++#include    <linux/types.h>
++#include    <linux/interrupt.h>
++#include    <linux/proc_fs.h>
++#include    <linux/kthread.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
++#include    <linux/semaphore.h>
++#else
++#include    <asm/semaphore.h>
++#endif
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
++#include    <linux/config.h>
++#endif
++
++/* Net header files */
++#include    <linux/netdevice.h>
++#include    <linux/net.h>
++#include    <linux/skbuff.h>
++#include    <linux/if_ether.h>
++#include    <linux/etherdevice.h>
++#include    <net/sock.h>
++#include    <linux/netlink.h>
++#include    <linux/firmware.h>
++#include    <linux/delay.h>
++
++#include    "uap_drv.h"
++#include    "uap_fw.h"
++
++#include <linux/mmc/sdio.h>
++#include <linux/mmc/sdio_ids.h>
++#include <linux/mmc/sdio_func.h>
++#include <linux/mmc/card.h>
++#include "uap_sdio_mmc.h"
++
++#endif /* _UAP_HEADERS_H */
+diff --git a/drivers/net/wireless/libertas_uap/uap_main.c b/drivers/net/wireless/libertas_uap/uap_main.c
+new file mode 100644
+index 0000000..6ad8403
+--- /dev/null
++++ b/drivers/net/wireless/libertas_uap/uap_main.c
+@@ -0,0 +1,1817 @@
++/** @file uap_main.c
++  * @brief This file contains the major functions in uAP
++  * driver. It includes init, exit etc..
++  * This file also contains the initialization for SW,
++  * FW and HW
++  *
++  * Copyright (C) 2008-2009, Marvell International Ltd.
++  *
++  * This software file (the "File") is distributed by Marvell International
++  * Ltd. under the terms of the GNU General Public License Version 2, June 1991
++  * (the "License").  You may use, redistribute and/or modify this File in
++  * accordance with the terms and conditions of the License, a copy of which
++  * is available along with the File in the gpl.txt file or by writing to
++  * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++  * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
++  *
++  * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
++  * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
++  * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
++  * this warranty disclaimer.
++  *
++  */
++/**
++  * @mainpage uAP Linux Driver
++  *
++  * @section overview_sec Overview
++  *
++  * This is Linux reference driver for Marvell uAP.
++  *
++  * @section copyright_sec Copyright
++  *
++  * Copyright (C) 2008, Marvell International Ltd.
++  *
++  */
++
++#include      "uap_headers.h"
++
++/**
++ * the global variable of a pointer to uap_private
++ * structure variable
++ */
++uap_private *uappriv = NULL;
++#ifdef DEBUG_LEVEL1
++#define DEFAULT_DEBUG_MASK    (DBG_MSG | DBG_FATAL | DBG_ERROR)
++u32 drvdbg = DEFAULT_DEBUG_MASK;
++#endif
++/** Helper name */
++char *helper_name = NULL;
++/** Firmware name */
++char *fw_name = NULL;
++
++/** Semaphore for add/remove card */
++SEMAPHORE AddRemoveCardSem;
++
++/********************************************************
++              Local Functions
++********************************************************/
++/**
++ *  @brief This function send sleep confirm command to firmware
++ *
++ *  @param priv       A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE
++ */
++static int
++uap_dnld_sleep_confirm_cmd(uap_private * priv)
++{
++    uap_adapter *Adapter = priv->adapter;
++    int ret = UAP_STATUS_SUCCESS;
++    ENTER();
++    PRINTM(CMND, "Sleep confirm\n");
++    Adapter->cmd_pending = TRUE;
++    Adapter->cmd_wait_option = HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM;
++    ret =
++        sbi_host_to_card(priv, (u8 *) & Adapter->PSConfirmSleep,
++                         sizeof(PS_CMD_ConfirmSleep));
++    if (ret != UAP_STATUS_SUCCESS) {
++        Adapter->ps_state = PS_STATE_AWAKE;
++        Adapter->cmd_pending = FALSE;
++        Adapter->cmd_wait_option = FALSE;
++    }
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function process sleep confirm resp from firmware
++ *
++ *  @param priv       A pointer to uap_private structure
++ *  @param resp       A pointer to resp buf
++ *  @param resp_len   resp buf len
++ *  @return      UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE
++ */
++int
++uap_process_sleep_confirm_resp(uap_private * priv, u8 * resp, int resp_len)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    HostCmd_DS_COMMAND *cmd;
++    uap_adapter *Adapter = priv->adapter;
++    ENTER();
++    PRINTM(CMND, "Sleep confirm resp\n");
++    if (!resp_len) {
++        PRINTM(ERROR, "Cmd Size is 0\n");
++        ret = -EFAULT;
++        goto done;
++    }
++    cmd = (HostCmd_DS_COMMAND *) resp;
++    cmd->Result = uap_le16_to_cpu(cmd->Result);
++    if (cmd->Result != UAP_STATUS_SUCCESS) {
++        PRINTM(ERROR, "HOST_CMD_APCMD_PS_SLEEP_CONFIRM fail=%x\n", cmd->Result);
++        ret = -EFAULT;
++    }
++  done:
++    if (ret == UAP_STATUS_SUCCESS)
++        Adapter->ps_state = PS_STATE_SLEEP;
++    else
++        Adapter->ps_state = PS_STATE_AWAKE;
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function checks condition and prepares to
++ *  send sleep confirm command to firmware if OK.
++ *
++ *  @param priv       A pointer to uap_private structure
++ *  @return           n/a
++ */
++static void
++uap_ps_cond_check(uap_private * priv)
++{
++    uap_adapter *Adapter = priv->adapter;
++
++    ENTER();
++    if (!priv->uap_dev.cmd_sent &&
++        !Adapter->cmd_pending && !Adapter->IntCounter) {
++        uap_dnld_sleep_confirm_cmd(priv);
++    } else {
++        PRINTM(INFO, "Delay Sleep Confirm (%s%s%s)\n",
++               (priv->uap_dev.cmd_sent) ? "D" : "",
++               (Adapter->cmd_pending) ? "C" : "",
++               (Adapter->IntCounter) ? "I" : "");
++    }
++    LEAVE();
++}
++
++/**
++ *  @brief This function add cmd to cmdQ and waiting for response
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param skb           A pointer to the skb for process
++ *  @param wait_option Wait option
++ *  @return      UAP_STATUS_SUCCESS for success otherwise UAP_STATUS_FAILURE
++ */
++static int
++uap_process_cmd(uap_private * priv, struct sk_buff *skb, u8 wait_option)
++{
++    uap_adapter *Adapter = priv->adapter;
++    int ret = UAP_STATUS_SUCCESS;
++    HostCmd_DS_COMMAND *cmd;
++    u8 *headptr;
++    ENTER();
++    if (Adapter->HardwareStatus != HWReady) {
++        PRINTM(ERROR, "Hw not ready, uap_process_cmd\n");
++        kfree(skb);
++        LEAVE();
++        return -EFAULT;
++    }
++    skb->cb[0] = wait_option;
++    headptr = skb->data;
++    *(u16 *) & headptr[0] = uap_cpu_to_le16(skb->len);
++    *(u16 *) & headptr[2] = uap_cpu_to_le16(MV_TYPE_CMD);
++    cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN);
++    Adapter->SeqNum++;
++    cmd->SeqNum = uap_cpu_to_le16(Adapter->SeqNum);
++    PRINTM(CMND, "process_cmd: %x\n", cmd->Command);
++    DBG_HEXDUMP(CMD_D, "process_cmd", (u8 *) cmd, cmd->Size);
++    if (!wait_option) {
++        skb_queue_tail(&priv->adapter->cmd_queue, skb);
++        wake_up_interruptible(&priv->MainThread.waitQ);
++        LEAVE();
++        return ret;
++    }
++    if (OS_ACQ_SEMAPHORE_BLOCK(&Adapter->CmdSem)) {
++        PRINTM(ERROR, "Acquire semaphore error, uap_prepare_cmd\n");
++        kfree(skb);
++        LEAVE();
++        return -EBUSY;
++    }
++    skb_queue_tail(&priv->adapter->cmd_queue, skb);
++    Adapter->CmdWaitQWoken = FALSE;
++    wake_up_interruptible(&priv->MainThread.waitQ);
++    /* Sleep until response is generated by FW */
++    if (wait_option == HostCmd_OPTION_WAITFORRSP_TIMEOUT) {
++        if (!os_wait_interruptible_timeout
++            (Adapter->cmdwait_q, Adapter->CmdWaitQWoken, MRVDRV_TIMER_20S)) {
++            PRINTM(ERROR, "Cmd timeout\n");
++            Adapter->cmd_pending = FALSE;
++            ret = -EFAULT;
++        }
++    } else
++        wait_event_interruptible(Adapter->cmdwait_q, Adapter->CmdWaitQWoken);
++    OS_REL_SEMAPHORE(&Adapter->CmdSem);
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief Inspect the response buffer for pointers to expected TLVs
++ *
++ *
++ *  @param pTlv        Pointer to the start of the TLV buffer to parse
++ *  @param tlvBufSize  Size of the TLV buffer
++ *  @param reqTlvType  request tlv's tlvtype
++ *  @param ppTlv       Output parameter: Pointer to the request TLV if found
++ *
++ *  @return            void
++ */
++static void
++uap_get_tlv_ptrs(MrvlIEtypes_Data_t * pTlv, int tlvBufSize,
++                 u16 reqTlvType, MrvlIEtypes_Data_t ** ppTlv)
++{
++    MrvlIEtypes_Data_t *pCurrentTlv;
++    int tlvBufLeft;
++    u16 tlvType;
++    u16 tlvLen;
++
++    ENTER();
++    pCurrentTlv = pTlv;
++    tlvBufLeft = tlvBufSize;
++    *ppTlv = NULL;
++    PRINTM(INFO, "uap_get_tlv: tlvBufSize = %d, reqTlvType=%x\n", tlvBufSize,
++           reqTlvType);
++    while (tlvBufLeft >= sizeof(MrvlIEtypesHeader_t)) {
++        tlvType = uap_le16_to_cpu(pCurrentTlv->Header.Type);
++        tlvLen = uap_le16_to_cpu(pCurrentTlv->Header.Len);
++        if (reqTlvType == tlvType)
++            *ppTlv = (MrvlIEtypes_Data_t *) pCurrentTlv;
++        if (*ppTlv) {
++            HEXDUMP("TLV Buf", (u8 *) * ppTlv, tlvLen);
++            break;
++        }
++        tlvBufLeft -= (sizeof(pTlv->Header) + tlvLen);
++        pCurrentTlv = (MrvlIEtypes_Data_t *) (pCurrentTlv->Data + tlvLen);
++    }                           /* while */
++    LEAVE();
++}
++
++/**
++ *  @brief This function get mac
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS on success, otherwise failure code
++ */
++static int
++uap_get_mac_address(uap_private * priv)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u32 CmdSize;
++    HostCmd_DS_COMMAND *cmd;
++    uap_adapter *Adapter = priv->adapter;
++    struct sk_buff *skb;
++    MrvlIEtypes_MacAddr_t *pMacAddrTlv;
++    MrvlIEtypes_Data_t *pTlv;
++    u16 tlvBufSize;
++    ENTER();
++    skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
++    if (!skb) {
++        PRINTM(ERROR, "No free skb\n");
++        ret = -ENOMEM;
++        goto done;
++    }
++    CmdSize =
++        S_DS_GEN + sizeof(HostCmd_SYS_CONFIG) + sizeof(MrvlIEtypes_MacAddr_t);
++    cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN);
++    cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SYS_CONFIGURE);
++    cmd->Size = uap_cpu_to_le16(CmdSize);
++    cmd->params.sys_config.Action = uap_cpu_to_le16(ACTION_GET);
++    pMacAddrTlv =
++        (MrvlIEtypes_MacAddr_t *) (skb->data + INTF_HEADER_LEN + S_DS_GEN +
++                                   sizeof(HostCmd_SYS_CONFIG));
++    pMacAddrTlv->Header.Type = uap_cpu_to_le16(MRVL_AP_MAC_ADDRESS_TLV_ID);
++    pMacAddrTlv->Header.Len = uap_cpu_to_le16(ETH_ALEN);
++    skb_put(skb, CmdSize + INTF_HEADER_LEN);
++    if (UAP_STATUS_SUCCESS !=
++        uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
++        PRINTM(ERROR, "Fail to process cmd SYS_CONFIGURE Query\n");
++        ret = -EFAULT;
++        goto done;
++    }
++    if (!Adapter->CmdSize) {
++        PRINTM(ERROR, "Cmd Size is 0\n");
++        ret = -EFAULT;
++        goto done;
++    }
++    cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf;
++    cmd->Result = uap_le16_to_cpu(cmd->Result);
++    if (cmd->Result != UAP_STATUS_SUCCESS) {
++        PRINTM(ERROR, "uap_get_mac_address fail=%x\n", cmd->Result);
++        ret = -EFAULT;
++        goto done;
++    }
++    pTlv =
++        (MrvlIEtypes_Data_t *) (Adapter->CmdBuf + S_DS_GEN +
++                                sizeof(HostCmd_SYS_CONFIG));
++    tlvBufSize = Adapter->CmdSize - S_DS_GEN - sizeof(HostCmd_SYS_CONFIG);
++    uap_get_tlv_ptrs(pTlv, tlvBufSize, MRVL_AP_MAC_ADDRESS_TLV_ID,
++                     (MrvlIEtypes_Data_t **) & pMacAddrTlv);
++    if (pMacAddrTlv) {
++        memcpy(priv->uap_dev.netdev->dev_addr, pMacAddrTlv->ApMacAddr,
++               ETH_ALEN);
++        HEXDUMP("Original MAC addr", priv->uap_dev.netdev->dev_addr, ETH_ALEN);
++    }
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function checks the conditions and sends packet to device
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param skb           A pointer to the skb for process
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++uap_process_tx(uap_private * priv, struct sk_buff *skb)
++{
++    uap_adapter *Adapter = priv->adapter;
++    int ret = UAP_STATUS_SUCCESS;
++    TxPD *pLocalTxPD;
++    u8 *headptr;
++    struct sk_buff *newskb;
++    int newheadlen;
++    ENTER();
++    ASSERT(skb);
++    if (!skb) {
++        LEAVE();
++        return UAP_STATUS_FAILURE;
++    }
++    if (skb_headroom(skb) < (sizeof(TxPD) + INTF_HEADER_LEN + HEADER_ALIGNMENT)) {
++        newheadlen = sizeof(TxPD) + INTF_HEADER_LEN + HEADER_ALIGNMENT;
++        PRINTM(WARN, "Tx: Insufficient skb headroom %d\n", skb_headroom(skb));
++        /* Insufficient skb headroom - allocate a new skb */
++        newskb = skb_realloc_headroom(skb, newheadlen);
++        if (unlikely(newskb == NULL)) {
++            PRINTM(ERROR, "Tx: Cannot allocate skb\n");
++            ret = UAP_STATUS_FAILURE;
++            goto done;
++        }
++        kfree_skb(skb);
++        skb = newskb;
++        PRINTM(INFO, "new skb headroom %d\n", skb_headroom(skb));
++    }
++    /* headptr should be aligned */
++    headptr = skb->data - sizeof(TxPD) - INTF_HEADER_LEN;
++    headptr = (u8 *) ((u32) headptr & ~((u32) (HEADER_ALIGNMENT - 1)));
++
++    pLocalTxPD = (TxPD *) (headptr + INTF_HEADER_LEN);
++    memset(pLocalTxPD, 0, sizeof(TxPD));
++    pLocalTxPD->BssType = PKT_TYPE_MICROAP;
++    pLocalTxPD->TxPktLength = skb->len;
++    /* offset of actual data */
++    pLocalTxPD->TxPktOffset = (long) skb->data - (long) pLocalTxPD;
++    endian_convert_TxPD(pLocalTxPD);
++    *(u16 *) & headptr[0] =
++        uap_cpu_to_le16(skb->len + ((long) skb->data - (long) headptr));
++    *(u16 *) & headptr[2] = uap_cpu_to_le16(MV_TYPE_DAT);
++    ret =
++        sbi_host_to_card(priv, headptr,
++                         skb->len + ((long) skb->data - (long) headptr));
++    if (ret) {
++        PRINTM(ERROR, "uap_process_tx Error: sbi_host_to_card failed: 0x%X\n",
++               ret);
++        Adapter->dbg.num_tx_host_to_card_failure++;
++        goto done;
++    }
++    PRINTM(DATA, "Data => FW\n");
++    DBG_HEXDUMP(DAT_D, "Tx", headptr,
++                MIN(skb->len + sizeof(TxPD), DATA_DUMP_LEN));
++  done:
++    /* Freed skb */
++    kfree_skb(skb);
++    LEAVE();
++    return ret;
++}
++
++static struct netlink_kernel_cfg cfg = {
++      .groups = NL_MULTICAST_GROUP,
++};
++
++/**
++ *  @brief This function initializes the adapter structure
++ *  and set default value to the member of adapter.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++uap_init_sw(uap_private * priv)
++{
++    uap_adapter *Adapter = priv->adapter;
++
++    ENTER();
++
++    if (!(Adapter->CmdBuf = kmalloc(MRVDRV_SIZE_OF_CMD_BUFFER, GFP_KERNEL))) {
++        PRINTM(INFO, "Failed to allocate command buffer!\n");
++        LEAVE();
++        return UAP_STATUS_FAILURE;
++    }
++
++    Adapter->cmd_pending = FALSE;
++    Adapter->CmdWaitQWoken = FALSE;
++    Adapter->ps_state = PS_STATE_AWAKE;
++    Adapter->WakeupTries = 0;
++
++    memset(&Adapter->PSConfirmSleep, 0, sizeof(PS_CMD_ConfirmSleep));
++        /** SDIO header */
++    Adapter->PSConfirmSleep.SDLen =
++        uap_cpu_to_le16(sizeof(PS_CMD_ConfirmSleep));
++    Adapter->PSConfirmSleep.SDType = uap_cpu_to_le16(MV_TYPE_CMD);
++    Adapter->PSConfirmSleep.SeqNum = 0;
++    Adapter->PSConfirmSleep.Command = uap_cpu_to_le16(HOST_CMD_SLEEP_CONFIRM);
++    Adapter->PSConfirmSleep.Size = uap_cpu_to_le16(sizeof(HostCmd_DS_GEN));
++    Adapter->PSConfirmSleep.Result = 0;
++
++    init_waitqueue_head(&Adapter->cmdwait_q);
++    OS_INIT_SEMAPHORE(&Adapter->CmdSem);
++
++    skb_queue_head_init(&Adapter->tx_queue);
++    skb_queue_head_init(&Adapter->cmd_queue);
++
++    /* Status variable */
++    Adapter->HardwareStatus = HWInitializing;
++
++    /* PnP support */
++    Adapter->SurpriseRemoved = FALSE;
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
++    Adapter->nl_sk = netlink_kernel_create(NETLINK_MARVELL,
++                                           NL_MULTICAST_GROUP, NULL,
++                                           THIS_MODULE);
++#else
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
++    Adapter->nl_sk = netlink_kernel_create(NETLINK_MARVELL,
++                                           NL_MULTICAST_GROUP, NULL, NULL,
++                                           THIS_MODULE);
++#else
++    Adapter->nl_sk = netlink_kernel_create(&init_net, NETLINK_MARVELL, &cfg);
++#endif
++#endif
++    if (!Adapter->nl_sk) {
++        PRINTM(ERROR,
++               "Could not initialize netlink event passing mechanism!\n");
++    }
++    LEAVE();
++    return UAP_STATUS_SUCCESS;
++}
++
++/**
++ *  @brief This function sends FUNC_INIT command to firmware
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS on success, otherwise failure code
++ */
++static int
++uap_func_init(uap_private * priv)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u32 CmdSize;
++    HostCmd_DS_GEN *cmd;
++    uap_adapter *Adapter = priv->adapter;
++    struct sk_buff *skb;
++    ENTER();
++    if (Adapter->HardwareStatus != HWReady) {
++        PRINTM(ERROR, "uap_func_init:Hardware is not ready!\n");
++        ret = -EFAULT;
++        goto done;
++    }
++    skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
++    if (!skb) {
++        PRINTM(ERROR, "No free skb\n");
++        ret = -ENOMEM;
++        goto done;
++    }
++    CmdSize = sizeof(HostCmd_DS_GEN);
++    cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN);
++    cmd->Command = uap_cpu_to_le16(HostCmd_CMD_FUNC_INIT);
++    cmd->Size = uap_cpu_to_le16(CmdSize);
++    skb_put(skb, CmdSize + INTF_HEADER_LEN);
++    PRINTM(CMND, "HostCmd_CMD_FUNC_INIT\n");
++    if (UAP_STATUS_SUCCESS !=
++        uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
++        PRINTM(ERROR, "Fail to process cmd HostCmd_CMD_FUNC_INIT\n");
++        ret = -EFAULT;
++        goto done;
++    }
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function sends FUNC_SHUTDOWN command to firmware
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS on success, otherwise failure code
++ */
++static int __exit
++uap_func_shutdown(uap_private * priv)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u32 CmdSize;
++    HostCmd_DS_GEN *cmd;
++    uap_adapter *Adapter = priv->adapter;
++    struct sk_buff *skb;
++    ENTER();
++    if (Adapter->HardwareStatus != HWReady) {
++        PRINTM(ERROR, "uap_func_shutdown:Hardware is not ready!\n");
++        ret = -EFAULT;
++        goto done;
++    }
++    skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
++    if (!skb) {
++        PRINTM(ERROR, "No free skb\n");
++        ret = -ENOMEM;
++        goto done;
++    }
++    CmdSize = sizeof(HostCmd_DS_GEN);
++    cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN);
++    cmd->Command = uap_cpu_to_le16(HostCmd_CMD_FUNC_SHUTDOWN);
++    cmd->Size = uap_cpu_to_le16(CmdSize);
++    skb_put(skb, CmdSize + INTF_HEADER_LEN);
++    PRINTM(CMND, "HostCmd_CMD_FUNC_SHUTDOWN\n");
++    if (UAP_STATUS_SUCCESS !=
++        uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
++        PRINTM(ERROR, "Fail to process cmd HostCmd_CMD_FUNC_SHUTDOWN\n");
++        ret = -EFAULT;
++        goto done;
++    }
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function initializes firmware
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++uap_init_fw(uap_private * priv)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    ENTER();
++    sbi_disable_host_int(priv);
++    /* Check if firmware is already running */
++    if (sbi_check_fw_status(priv, 1) == UAP_STATUS_SUCCESS) {
++        PRINTM(MSG, "UAP FW already running! Skip FW download\n");
++    } else {
++        if ((ret = request_firmware(&priv->fw_helper, helper_name,
++                                    priv->hotplug_device)) < 0) {
++            PRINTM(FATAL,
++                   "request_firmware() failed (helper), error code = %#x\n",
++                   ret);
++            goto done;
++        }
++
++        /* Download the helper */
++        ret = sbi_prog_helper(priv);
++
++        if (ret) {
++            PRINTM(FATAL,
++                   "Bootloader in invalid state! Helper download failed!\n");
++            ret = UAP_STATUS_FAILURE;
++            goto done;
++        }
++        if ((ret = request_firmware(&priv->firmware, fw_name,
++                                    priv->hotplug_device)) < 0) {
++            PRINTM(FATAL, "request_firmware() failed, error code = %#x\n", ret);
++            goto done;
++        }
++
++        /* Download the main firmware via the helper firmware */
++        if (sbi_prog_fw_w_helper(priv)) {
++            PRINTM(FATAL, "UAP FW download failed!\n");
++            ret = UAP_STATUS_FAILURE;
++            goto done;
++        }
++        /* Check if the firmware is downloaded successfully or not */
++        if (sbi_check_fw_status(priv, MAX_FIRMWARE_POLL_TRIES) ==
++            UAP_STATUS_FAILURE) {
++            PRINTM(FATAL, "FW failed to be active in time!\n");
++            ret = UAP_STATUS_FAILURE;
++            goto done;
++        }
++        PRINTM(MSG, "UAP FW is active\n");
++    }
++    sbi_enable_host_int(priv);
++    priv->adapter->HardwareStatus = HWReady;
++    if (uap_func_init(priv) != UAP_STATUS_SUCCESS) {
++        ret = UAP_STATUS_FAILURE;
++        goto done;
++    }
++  done:
++    if (priv->fw_helper)
++        release_firmware(priv->fw_helper);
++    if (priv->firmware)
++        release_firmware(priv->firmware);
++    LEAVE();
++    return ret;
++
++}
++
++/**
++ *  @brief This function frees the structure of adapter
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      n/a
++ */
++static void
++uap_free_adapter(uap_private * priv)
++{
++    uap_adapter *Adapter = priv->adapter;
++
++    ENTER();
++
++    if (Adapter) {
++        if ((Adapter->nl_sk) && ((Adapter->nl_sk)->sk_socket)) {
++            sock_release((Adapter->nl_sk)->sk_socket);
++            Adapter->nl_sk = NULL;
++        }
++        if (Adapter->CmdBuf)
++            kfree(Adapter->CmdBuf);
++        skb_queue_purge(&priv->adapter->tx_queue);
++        skb_queue_purge(&priv->adapter->cmd_queue);
++        /* Free the adapter object itself */
++        kfree(Adapter);
++        priv->adapter = NULL;
++    }
++
++    LEAVE();
++}
++
++/**
++ *  @brief This function handles the major job in uap driver.
++ *  it handles the event generated by firmware, rx data received
++ *  from firmware and tx data sent from kernel.
++ *
++ *  @param data    A pointer to uap_thread structure
++ *  @return        BT_STATUS_SUCCESS
++ */
++static int
++uap_service_main_thread(void *data)
++{
++    uap_thread *thread = data;
++    uap_private *priv = thread->priv;
++    uap_adapter *Adapter = priv->adapter;
++    wait_queue_t wait;
++    u8 ireg = 0;
++    struct sk_buff *skb;
++    ENTER();
++    uap_activate_thread(thread);
++    init_waitqueue_entry(&wait, current);
++    current->flags |= PF_NOFREEZE;
++
++    for (;;) {
++        add_wait_queue(&thread->waitQ, &wait);
++        OS_SET_THREAD_STATE(TASK_INTERRUPTIBLE);
++        if ((Adapter->WakeupTries) ||
++            (!Adapter->IntCounter && Adapter->ps_state == PS_STATE_PRE_SLEEP) ||
++            (!priv->adapter->IntCounter
++             && (priv->uap_dev.data_sent ||
++                 skb_queue_empty(&priv->adapter->tx_queue))
++             && (priv->uap_dev.cmd_sent || Adapter->cmd_pending ||
++                 skb_queue_empty(&priv->adapter->cmd_queue))
++            )) {
++            PRINTM(INFO, "Main: Thread sleeping...\n");
++            schedule();
++        }
++        OS_SET_THREAD_STATE(TASK_RUNNING);
++        remove_wait_queue(&thread->waitQ, &wait);
++        if (kthread_should_stop() || Adapter->SurpriseRemoved) {
++            PRINTM(INFO, "main-thread: break from main thread: "
++                   "SurpriseRemoved=0x%x\n", Adapter->SurpriseRemoved);
++            /* Cancel pending command */
++            if (Adapter->cmd_pending == TRUE) {
++                /* Wake up cmd Q */
++                Adapter->CmdWaitQWoken = TRUE;
++                wake_up_interruptible(&Adapter->cmdwait_q);
++            }
++            break;
++        }
++
++        PRINTM(INFO, "Main: Thread waking up...\n");
++        if (priv->adapter->IntCounter) {
++            OS_INT_DISABLE;
++            Adapter->IntCounter = 0;
++            OS_INT_RESTORE;
++            sbi_get_int_status(priv, &ireg);
++        } else if ((priv->adapter->ps_state == PS_STATE_SLEEP) &&
++                   (!skb_queue_empty(&priv->adapter->cmd_queue) ||
++                    !skb_queue_empty(&priv->adapter->tx_queue))) {
++            priv->adapter->WakeupTries++;
++            PRINTM(CMND, "%lu : Wakeup device...\n", os_time_get());
++            sbi_wakeup_firmware(priv);
++            continue;
++        }
++        if (Adapter->ps_state == PS_STATE_PRE_SLEEP)
++            uap_ps_cond_check(priv);
++
++        /* The PS state is changed during processing of Sleep Request event
++           above */
++        if ((Adapter->ps_state == PS_STATE_SLEEP) ||
++            (Adapter->ps_state == PS_STATE_PRE_SLEEP))
++            continue;
++        /* Execute the next command */
++        if (!priv->uap_dev.cmd_sent && !Adapter->cmd_pending &&
++            (Adapter->HardwareStatus == HWReady)) {
++            if (!skb_queue_empty(&priv->adapter->cmd_queue)) {
++                skb = skb_dequeue(&priv->adapter->cmd_queue);
++                if (skb) {
++                    Adapter->CmdSize = 0;
++                    Adapter->cmd_pending = TRUE;
++                    Adapter->cmd_wait_option = skb->cb[0];
++                    if (sbi_host_to_card(priv, skb->data, skb->len)) {
++                        PRINTM(ERROR, "Cmd:sbi_host_to_card failed!\n");
++                        Adapter->cmd_pending = FALSE;
++                        Adapter->dbg.num_cmd_host_to_card_failure++;
++                        /* Wake up cmd Q */
++                        Adapter->CmdWaitQWoken = TRUE;
++                        wake_up_interruptible(&Adapter->cmdwait_q);
++                    } else {
++                        if (Adapter->cmd_wait_option ==
++                            HostCmd_OPTION_WAITFORSEND) {
++                            /* Wake up cmd Q */
++                            Adapter->CmdWaitQWoken = TRUE;
++                            wake_up_interruptible(&Adapter->cmdwait_q);
++                            Adapter->cmd_wait_option = FALSE;
++                        }
++                    }
++                    kfree_skb(skb);
++                }
++            }
++        }
++        if (!priv->uap_dev.data_sent && (Adapter->HardwareStatus == HWReady)) {
++            if (!skb_queue_empty(&priv->adapter->tx_queue)) {
++                skb = skb_dequeue(&priv->adapter->tx_queue);
++                if (skb) {
++                    if (uap_process_tx(priv, skb)) {
++                        priv->stats.tx_dropped++;
++                        priv->stats.tx_errors++;
++                        os_start_queue(priv);
++                    } else {
++                        priv->stats.tx_packets++;
++                        priv->stats.tx_bytes += skb->len;
++                    }
++
++                }
++            }
++        }
++    }
++    uap_deactivate_thread(thread);
++    LEAVE();
++    return UAP_STATUS_SUCCESS;
++}
++
++/**
++ *  @brief uap hostcmd ioctl handler
++ *
++ *  @param dev      A pointer to net_device structure
++ *  @param req      A pointer to ifreq structure
++ *  @return         UAP_STATUS_SUCCESS --success, otherwise fail
++ */
++/*********  format of ifr_data *************/
++/*    buf_len + Hostcmd_body             */
++/*    buf_len: 4 bytes                     */
++/*             the length of the buf which */
++/*             can be used to return data  */
++/*             to application            */
++/*    Hostcmd_body                       */
++/*******************************************/
++static int
++uap_hostcmd_ioctl(struct net_device *dev, struct ifreq *req)
++{
++    u32 buf_len;
++    HostCmd_HEADER head;
++    uap_private *priv = (uap_private *) netdev_priv(dev);
++    uap_adapter *Adapter = priv->adapter;
++    int ret = UAP_STATUS_SUCCESS;
++    struct sk_buff *skb;
++
++    ENTER();
++
++    /* Sanity check */
++    if (req->ifr_data == NULL) {
++        PRINTM(ERROR, "uap_hostcmd_ioctl() corrupt data\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    if (copy_from_user(&buf_len, req->ifr_data, sizeof(buf_len))) {
++        PRINTM(ERROR, "Copy from user failed\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    memset(&head, 0, sizeof(HostCmd_HEADER));
++    /* Get the command size from user space */
++    if (copy_from_user
++        (&head, req->ifr_data + sizeof(buf_len), sizeof(HostCmd_HEADER))) {
++        PRINTM(ERROR, "Copy from user failed\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    head.Size = uap_le16_to_cpu(head.Size);
++    if (head.Size > MRVDRV_SIZE_OF_CMD_BUFFER) {
++        PRINTM(ERROR, "CmdSize too big=%d\n", head.Size);
++        LEAVE();
++        return -EFAULT;
++    }
++    PRINTM(CMND, "ioctl: hostcmd=%x, size=%d,buf_len=%d\n", head.Command,
++           head.Size, buf_len);
++    skb = dev_alloc_skb(head.Size + INTF_HEADER_LEN);
++    if (!skb) {
++        PRINTM(ERROR, "No free skb\n");
++        LEAVE();
++        return -ENOMEM;
++    }
++
++    /* Get the command from user space */
++    if (copy_from_user
++        (skb->data + INTF_HEADER_LEN, req->ifr_data + sizeof(buf_len),
++         head.Size)) {
++        PRINTM(ERROR, "Copy from user failed\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    skb_put(skb, head.Size + INTF_HEADER_LEN);
++    if (UAP_STATUS_SUCCESS !=
++        uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP)) {
++        PRINTM(ERROR, "Fail to process cmd\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    if (!Adapter->CmdSize) {
++        PRINTM(ERROR, "Cmd Size is 0\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    if (Adapter->CmdSize > buf_len) {
++        PRINTM(ERROR, "buf_len is too small\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    /* Copy to user */
++    if (copy_to_user
++        (req->ifr_data + sizeof(buf_len), Adapter->CmdBuf, Adapter->CmdSize)) {
++        PRINTM(ERROR, "Copy to user failed!\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief uap power mode ioctl handler
++ *
++ *  @param dev      A pointer to net_device structure
++ *  @param req      A pointer to ifreq structure
++ *  @return         UAP_STATUS_SUCCESS --success, otherwise fail
++ */
++static int
++uap_power_mode_ioctl(struct net_device *dev, struct ifreq *req)
++{
++    ps_mgmt pm_cfg;
++    int ret = UAP_STATUS_SUCCESS;
++    uap_private *priv = (uap_private *) netdev_priv(dev);
++    uap_adapter *Adapter = priv->adapter;
++    struct sk_buff *skb = NULL;
++    HostCmd_DS_COMMAND *cmd;
++    u32 CmdSize;
++    u8 *tlv = NULL;
++    MrvlIEtypes_sleep_param_t *sleep_tlv = NULL;
++    MrvlIEtypes_inact_sleep_param_t *inact_tlv = NULL;
++    u16 tlv_buf_left = 0;
++    MrvlIEtypesHeader_t *tlvbuf = NULL;
++    u16 tlv_type = 0;
++    u16 tlv_len = 0;
++
++    ENTER();
++
++    /* Sanity check */
++    if (req->ifr_data == NULL) {
++        PRINTM(ERROR, "uap_power_mode_ioctl() corrupt data\n");
++        LEAVE();
++        return -EFAULT;
++    }
++
++    memset(&pm_cfg, 0, sizeof(ps_mgmt));
++    if (copy_from_user(&pm_cfg, req->ifr_data, sizeof(ps_mgmt))) {
++        PRINTM(ERROR, "Copy from user failed\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    PRINTM(CMND,
++           "ioctl power: flag=0x%x ps_mode=%d ctrl_bitmap=%d min_sleep=%d max_sleep=%d "
++           "inact_to=%d min_awake=%d max_awake=%d\n", pm_cfg.flags,
++           (int) pm_cfg.ps_mode, (int) pm_cfg.sleep_param.ctrl_bitmap,
++           (int) pm_cfg.sleep_param.min_sleep,
++           (int) pm_cfg.sleep_param.max_sleep,
++           (int) pm_cfg.inact_param.inactivity_to,
++           (int) pm_cfg.inact_param.min_awake,
++           (int) pm_cfg.inact_param.max_awake);
++
++    if (pm_cfg.
++        flags & ~(PS_FLAG_PS_MODE | PS_FLAG_SLEEP_PARAM |
++                  PS_FLAG_INACT_SLEEP_PARAM)) {
++        PRINTM(ERROR, "Invalid parameter: flags = 0x%x\n", pm_cfg.flags);
++        ret = -EINVAL;
++        goto done;
++    }
++    if (pm_cfg.ps_mode > PS_MODE_INACTIVITY) {
++        PRINTM(ERROR, "Invalid parameter: ps_mode = %d\n", (int) pm_cfg.flags);
++        ret = -EINVAL;
++        goto done;
++    }
++
++    skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
++    if (!skb) {
++        PRINTM(INFO, "No free skb\n");
++        ret = -ENOMEM;
++        goto done;
++    }
++
++    CmdSize = S_DS_GEN + sizeof(HostCmd_DS_POWER_MGMT_EXT);
++
++    cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN);
++    cmd->Command = uap_cpu_to_le16(HOST_CMD_POWER_MGMT_EXT);
++    if (!pm_cfg.flags) {
++        cmd->params.pm_cfg.action = uap_cpu_to_le16(ACTION_GET);
++    } else {
++        cmd->params.pm_cfg.action = uap_cpu_to_le16(ACTION_SET);
++        cmd->params.pm_cfg.power_mode = uap_cpu_to_le16(pm_cfg.ps_mode);
++        tlv = (u8 *) & cmd->params.pm_cfg + sizeof(HostCmd_DS_POWER_MGMT_EXT);
++
++        if ((pm_cfg.ps_mode) && (pm_cfg.flags & PS_FLAG_SLEEP_PARAM)) {
++            sleep_tlv = (MrvlIEtypes_sleep_param_t *) tlv;
++            sleep_tlv->header.Type = uap_cpu_to_le16(TLV_TYPE_AP_SLEEP_PARAM);
++            sleep_tlv->header.Len =
++                uap_cpu_to_le16(sizeof(MrvlIEtypes_sleep_param_t) -
++                                sizeof(MrvlIEtypesHeader_t));
++            sleep_tlv->ctrl_bitmap =
++                uap_cpu_to_le32(pm_cfg.sleep_param.ctrl_bitmap);
++            sleep_tlv->min_sleep =
++                uap_cpu_to_le32(pm_cfg.sleep_param.min_sleep);
++            sleep_tlv->max_sleep =
++                uap_cpu_to_le32(pm_cfg.sleep_param.max_sleep);
++            CmdSize += sizeof(MrvlIEtypes_sleep_param_t);
++            tlv += sizeof(MrvlIEtypes_sleep_param_t);
++        }
++        if ((pm_cfg.ps_mode == PS_MODE_INACTIVITY) &&
++            (pm_cfg.flags & PS_FLAG_INACT_SLEEP_PARAM)) {
++            inact_tlv = (MrvlIEtypes_inact_sleep_param_t *) tlv;
++            inact_tlv->header.Type =
++                uap_cpu_to_le16(TLV_TYPE_AP_INACT_SLEEP_PARAM);
++            inact_tlv->header.Len =
++                uap_cpu_to_le16(sizeof(MrvlIEtypes_inact_sleep_param_t) -
++                                sizeof(MrvlIEtypesHeader_t));
++            inact_tlv->inactivity_to =
++                uap_cpu_to_le32(pm_cfg.inact_param.inactivity_to);
++            inact_tlv->min_awake =
++                uap_cpu_to_le32(pm_cfg.inact_param.min_awake);
++            inact_tlv->max_awake =
++                uap_cpu_to_le32(pm_cfg.inact_param.max_awake);
++            CmdSize += sizeof(MrvlIEtypes_inact_sleep_param_t);
++            tlv += sizeof(MrvlIEtypes_inact_sleep_param_t);
++        }
++    }
++    cmd->Size = uap_cpu_to_le16(CmdSize);
++    skb_put(skb, CmdSize + INTF_HEADER_LEN);
++    if (UAP_STATUS_SUCCESS !=
++        uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP)) {
++        PRINTM(ERROR, "Fail to process cmd POWER_MODE\n");
++        ret = -EFAULT;
++        goto done;
++    }
++    if (!Adapter->CmdSize) {
++        PRINTM(ERROR, "Cmd Size is 0\n");
++        ret = -EFAULT;
++        goto done;
++    }
++    cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf;
++    cmd->Result = uap_le16_to_cpu(cmd->Result);
++    if (cmd->Result != UAP_STATUS_SUCCESS) {
++        PRINTM(ERROR, "HOST_CMD_APCMD_POWER_MODE fail=%x\n", cmd->Result);
++        ret = -EFAULT;
++        goto done;
++    }
++    if (pm_cfg.flags) {
++        Adapter->psmode = uap_le16_to_cpu(cmd->params.pm_cfg.power_mode);
++    } else {
++        pm_cfg.flags = PS_FLAG_PS_MODE;
++        pm_cfg.ps_mode = uap_le16_to_cpu(cmd->params.pm_cfg.power_mode);
++        tlv_buf_left =
++            cmd->Size - (sizeof(HostCmd_DS_POWER_MGMT_EXT) + S_DS_GEN);
++        tlvbuf =
++            (MrvlIEtypesHeader_t *) ((u8 *) & cmd->params.pm_cfg +
++                                     sizeof(HostCmd_DS_POWER_MGMT_EXT));
++        while (tlv_buf_left >= sizeof(MrvlIEtypesHeader_t)) {
++            tlv_type = uap_le16_to_cpu(tlvbuf->Type);
++            tlv_len = uap_le16_to_cpu(tlvbuf->Len);
++            switch (tlv_type) {
++            case TLV_TYPE_AP_SLEEP_PARAM:
++                sleep_tlv = (MrvlIEtypes_sleep_param_t *) tlvbuf;
++                pm_cfg.flags |= PS_FLAG_SLEEP_PARAM;
++                pm_cfg.sleep_param.ctrl_bitmap =
++                    uap_le32_to_cpu(sleep_tlv->ctrl_bitmap);
++                pm_cfg.sleep_param.min_sleep =
++                    uap_le32_to_cpu(sleep_tlv->min_sleep);
++                pm_cfg.sleep_param.max_sleep =
++                    uap_le32_to_cpu(sleep_tlv->max_sleep);
++                break;
++            case TLV_TYPE_AP_INACT_SLEEP_PARAM:
++                inact_tlv = (MrvlIEtypes_inact_sleep_param_t *) tlvbuf;
++                pm_cfg.flags |= PS_FLAG_INACT_SLEEP_PARAM;
++                pm_cfg.inact_param.inactivity_to =
++                    uap_le32_to_cpu(inact_tlv->inactivity_to);
++                pm_cfg.inact_param.min_awake =
++                    uap_le32_to_cpu(inact_tlv->min_awake);
++                pm_cfg.inact_param.max_awake =
++                    uap_le32_to_cpu(inact_tlv->max_awake);
++                break;
++            }
++            tlv_buf_left -= tlv_len + sizeof(MrvlIEtypesHeader_t);
++            tlvbuf =
++                (MrvlIEtypesHeader_t *) ((u8 *) tlvbuf + tlv_len +
++                                         sizeof(MrvlIEtypesHeader_t));
++        }
++        /* Copy to user */
++        if (copy_to_user(req->ifr_data, &pm_cfg, sizeof(ps_mgmt))) {
++            PRINTM(ERROR, "Copy to user failed!\n");
++            LEAVE();
++            return -EFAULT;
++        }
++    }
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function send bss_stop command to firmware
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS on success, otherwise failure code
++ */
++static int
++uap_bss_stop(uap_private * priv)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u32 CmdSize;
++    HostCmd_DS_GEN *cmd;
++    uap_adapter *Adapter = priv->adapter;
++    struct sk_buff *skb;
++    ENTER();
++    if (Adapter->HardwareStatus != HWReady) {
++        PRINTM(ERROR, "uap_bss_stop:Hardware is not ready!\n");
++        ret = -EFAULT;
++        goto done;
++    }
++    skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
++    if (!skb) {
++        PRINTM(ERROR, "No free skb\n");
++        ret = -ENOMEM;
++        goto done;
++    }
++    CmdSize = sizeof(HostCmd_DS_GEN);
++    cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN);
++    cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_BSS_STOP);
++    cmd->Size = uap_cpu_to_le16(CmdSize);
++    skb_put(skb, CmdSize + INTF_HEADER_LEN);
++    PRINTM(CMND, "APCMD_BSS_STOP\n");
++    if (UAP_STATUS_SUCCESS !=
++        uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
++        PRINTM(ERROR, "Fail to process cmd BSS_STOP\n");
++        ret = -EFAULT;
++        goto done;
++    }
++  done:
++    LEAVE();
++    return ret;
++}
++
++/********************************************************
++              Global Functions
++********************************************************/
++/**
++ *  @brief This function send soft_reset command to firmware
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS on success, otherwise failure code
++ */
++int
++uap_soft_reset(uap_private * priv)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u32 CmdSize;
++    HostCmd_DS_GEN *cmd;
++    uap_adapter *Adapter = priv->adapter;
++    struct sk_buff *skb;
++    ENTER();
++    ret = uap_bss_stop(priv);
++    if (ret != UAP_STATUS_SUCCESS)
++        goto done;
++    skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
++    if (!skb) {
++        PRINTM(ERROR, "No free skb\n");
++        ret = -ENOMEM;
++        goto done;
++    }
++    CmdSize = sizeof(HostCmd_DS_GEN);
++    cmd = (HostCmd_DS_GEN *) (skb->data + INTF_HEADER_LEN);
++    cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SOFT_RESET);
++    cmd->Size = uap_cpu_to_le16(CmdSize);
++    skb_put(skb, CmdSize + INTF_HEADER_LEN);
++    PRINTM(CMND, "APCMD_SOFT_RESET\n");
++    if (UAP_STATUS_SUCCESS !=
++        uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORSEND)) {
++        PRINTM(ERROR, "Fail to process cmd SOFT_RESET\n");
++        ret = -EFAULT;
++        goto done;
++    }
++    Adapter->SurpriseRemoved = TRUE;
++    /* delay to allow hardware complete reset */
++    os_sched_timeout(5);
++    if (priv->MediaConnected == TRUE) {
++        os_stop_queue(priv);
++        os_carrier_off(priv);
++        priv->MediaConnected = FALSE;
++    }
++    Adapter->CmdSize = 0;
++    Adapter->CmdWaitQWoken = TRUE;
++    wake_up_interruptible(&Adapter->cmdwait_q);
++    skb_queue_purge(&priv->adapter->tx_queue);
++    skb_queue_purge(&priv->adapter->cmd_queue);
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function processes received packet and forwards it
++ *  to kernel/upper layer
++ *
++ *  @param priv    A pointer to uap_private
++ *  @param skb     A pointer to skb which includes the received packet
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++uap_process_rx_packet(uap_private * priv, struct sk_buff *skb)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    RxPD *pRxPD;
++    ENTER();
++    priv->adapter->ps_state = PS_STATE_AWAKE;
++    pRxPD = (RxPD *) skb->data;
++    endian_convert_RxPD(pRxPD);
++    DBG_HEXDUMP(DAT_D, "Rx", skb->data, MIN(skb->len, DATA_DUMP_LEN));
++    skb_pull(skb, pRxPD->RxPktOffset);
++    priv->stats.rx_packets++;
++    priv->stats.rx_bytes += skb->len;
++    os_upload_rx_packet(priv, skb);
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function opens the network device
++ *
++ *  @param dev     A pointer to net_device structure
++ *  @return        UAP_STATUS_SUCCESS
++ */
++static int
++uap_open(struct net_device *dev)
++{
++    uap_private *priv = (uap_private *) (uap_private *) netdev_priv(dev);
++    uap_adapter *Adapter = priv->adapter;
++    int i = 0;
++
++    ENTER();
++
++    /* On some systems the device open handler will be called before HW ready. */
++    /* Use the following flag check and wait function to work around the issue. */
++    while ((Adapter->HardwareStatus != HWReady) &&
++           (i < MAX_WAIT_DEVICE_READY_COUNT)) {
++        i++;
++        os_sched_timeout(100);
++    }
++    if (i >= MAX_WAIT_DEVICE_READY_COUNT) {
++        PRINTM(FATAL, "HW not ready, uap_open() return failure\n");
++        LEAVE();
++        return UAP_STATUS_FAILURE;
++    }
++
++    if (MODULE_GET == 0)
++        return UAP_STATUS_FAILURE;
++
++    priv->open = TRUE;
++    if (priv->MediaConnected == TRUE) {
++        os_carrier_on(priv);
++        os_start_queue(priv);
++    } else {
++        os_stop_queue(priv);
++        os_carrier_off(priv);
++    }
++    LEAVE();
++    return UAP_STATUS_SUCCESS;
++}
++
++/**
++ *  @brief This function closes the network device
++ *
++ *  @param dev     A pointer to net_device structure
++ *  @return        UAP_STATUS_SUCCESS
++ */
++static int
++uap_close(struct net_device *dev)
++{
++    uap_private *priv = (uap_private *) netdev_priv(dev);
++
++    ENTER();
++    skb_queue_purge(&priv->adapter->tx_queue);
++    os_stop_queue(priv);
++    os_carrier_off(priv);
++
++    MODULE_PUT;
++    priv->open = FALSE;
++    LEAVE();
++    return UAP_STATUS_SUCCESS;
++}
++
++/**
++ *  @brief This function returns the network statistics
++ *
++ *  @param dev     A pointer to uap_private structure
++ *  @return        A pointer to net_device_stats structure
++ */
++static struct net_device_stats *
++uap_get_stats(struct net_device *dev)
++{
++    uap_private *priv = (uap_private *) netdev_priv(dev);
++
++    return &priv->stats;
++}
++
++/**
++ *  @brief This function sets the MAC address to firmware.
++ *
++ *  @param dev     A pointer to uap_private structure
++ *  @param addr    MAC address to set
++ *  @return        UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++uap_set_mac_address(struct net_device *dev, void *addr)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    uap_private *priv = (uap_private *) netdev_priv(dev);
++    struct sockaddr *pHwAddr = (struct sockaddr *) addr;
++    u32 CmdSize;
++    HostCmd_DS_COMMAND *cmd;
++    MrvlIEtypes_MacAddr_t *pMacAddrTlv;
++    uap_adapter *Adapter = priv->adapter;
++    struct sk_buff *skb;
++
++    ENTER();
++
++    /* Dump MAC address */
++    DBG_HEXDUMP(CMD_D, "Original MAC addr", dev->dev_addr, ETH_ALEN);
++    DBG_HEXDUMP(CMD_D, "New MAC addr", pHwAddr->sa_data, ETH_ALEN);
++    if (priv->open && (priv->MediaConnected == TRUE)) {
++        os_carrier_on(priv);
++        os_start_queue(priv);
++    }
++    skb = dev_alloc_skb(MRVDRV_SIZE_OF_CMD_BUFFER);
++    if (!skb) {
++        PRINTM(ERROR, "No free skb\n");
++        LEAVE();
++        return -ENOMEM;
++    }
++    CmdSize =
++        S_DS_GEN + sizeof(HostCmd_SYS_CONFIG) + sizeof(MrvlIEtypes_MacAddr_t);
++    cmd = (HostCmd_DS_COMMAND *) (skb->data + INTF_HEADER_LEN);
++    cmd->Command = uap_cpu_to_le16(HOST_CMD_APCMD_SYS_CONFIGURE);
++    cmd->Size = uap_cpu_to_le16(CmdSize);
++    cmd->params.sys_config.Action = uap_cpu_to_le16(ACTION_SET);
++    pMacAddrTlv =
++        (MrvlIEtypes_MacAddr_t *) ((u8 *) cmd + S_DS_GEN +
++                                   sizeof(HostCmd_SYS_CONFIG));
++    pMacAddrTlv->Header.Type = uap_cpu_to_le16(MRVL_AP_MAC_ADDRESS_TLV_ID);
++    pMacAddrTlv->Header.Len = uap_cpu_to_le16(ETH_ALEN);
++    memcpy(pMacAddrTlv->ApMacAddr, pHwAddr->sa_data, ETH_ALEN);
++    skb_put(skb, CmdSize + INTF_HEADER_LEN);
++    PRINTM(CMND, "set_mac_address\n");
++    if (UAP_STATUS_SUCCESS !=
++        uap_process_cmd(priv, skb, HostCmd_OPTION_WAITFORRSP_TIMEOUT)) {
++        PRINTM(ERROR, "Fail to set mac address\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    if (!Adapter->CmdSize) {
++        PRINTM(ERROR, "Cmd Size is 0\n");
++        LEAVE();
++        return -EFAULT;
++    }
++    cmd = (HostCmd_DS_COMMAND *) Adapter->CmdBuf;
++    cmd->Result = uap_cpu_to_le16(cmd->Result);
++    if (cmd->Result != UAP_STATUS_SUCCESS) {
++        PRINTM(ERROR, "set mac addrress fail,cmd result=%x\n", cmd->Result);
++        ret = -EFAULT;
++    } else
++        memcpy(dev->dev_addr, pHwAddr->sa_data, ETH_ALEN);
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function handles the timeout of packet
++ *  transmission
++ *
++ *  @param dev     A pointer to net_device structure
++ *  @return        n/a
++ */
++static void
++uap_tx_timeout(struct net_device *dev)
++{
++    uap_private *priv = (uap_private *) netdev_priv(dev);
++
++    ENTER();
++
++    PRINTM(DATA, "Tx timeout\n");
++    UpdateTransStart(dev);
++    priv->num_tx_timeout++;
++    priv->adapter->IntCounter++;
++    wake_up_interruptible(&priv->MainThread.waitQ);
++
++    LEAVE();
++}
++
++/**
++ *  @brief This function handles packet transmission
++ *
++ *  @param skb     A pointer to sk_buff structure
++ *  @param dev     A pointer to net_device structure
++ *  @return        UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++uap_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
++{
++    uap_private *priv = (uap_private *) netdev_priv(dev);
++    int ret = UAP_STATUS_SUCCESS;
++
++    ENTER();
++    PRINTM(DATA, "Data <= kernel\n");
++    DBG_HEXDUMP(DAT_D, "Tx", skb->data, MIN(skb->len, DATA_DUMP_LEN));
++    /* skb sanity check */
++    if (!skb->len || (skb->len > MRVDRV_MAXIMUM_ETH_PACKET_SIZE)) {
++        PRINTM(ERROR, "Tx Error: Bad skb length %d : %d\n", skb->len,
++               MRVDRV_MAXIMUM_ETH_PACKET_SIZE);
++        priv->stats.tx_dropped++;
++        kfree(skb);
++        goto done;
++    }
++    skb_queue_tail(&priv->adapter->tx_queue, skb);
++    wake_up_interruptible(&priv->MainThread.waitQ);
++    if (skb_queue_len(&priv->adapter->tx_queue) > TX_HIGH_WATERMARK) {
++        UpdateTransStart(dev);
++        os_stop_queue(priv);
++    }
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief ioctl function - entry point
++ *
++ *  @param dev      A pointer to net_device structure
++ *  @param req      A pointer to ifreq structure
++ *  @param cmd      command
++ *  @return         UAP_STATUS_SUCCESS--success, otherwise fail
++ */
++static int
++uap_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
++{
++    int ret = UAP_STATUS_SUCCESS;
++
++    ENTER();
++
++    PRINTM(CMND, "uap_do_ioctl: ioctl cmd = 0x%x\n", cmd);
++
++    switch (cmd) {
++    case UAPHOSTCMD:
++        ret = uap_hostcmd_ioctl(dev, req);
++        break;
++    case UAP_POWER_MODE:
++        ret = uap_power_mode_ioctl(dev, req);
++        break;
++    default:
++        ret = -EINVAL;
++        break;
++    }
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function handles events generated by firmware
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param payload A pointer to payload buffer
++ *  @param len           Length of the payload
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++uap_process_event(uap_private * priv, u8 * payload, uint len)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    uap_adapter *Adapter = priv->adapter;
++    struct sk_buff *skb = NULL;
++    struct nlmsghdr *nlh = NULL;
++    struct sock *sk = Adapter->nl_sk;
++    AP_Event *pEvent;
++
++    ENTER();
++    Adapter->ps_state = PS_STATE_AWAKE;
++    if (len > NL_MAX_PAYLOAD) {
++        PRINTM(ERROR, "event size is too big!!! len=%d\n", len);
++        ret = UAP_STATUS_FAILURE;
++        goto done;
++    }
++    pEvent = (AP_Event *) payload;
++    PRINTM(CMND, "Event: %d\n", pEvent->EventId);
++    switch (pEvent->EventId) {
++    case MICRO_AP_EV_ID_BSS_START:
++        memcpy(priv->uap_dev.netdev->dev_addr, pEvent->MacAddr, ETH_ALEN);
++        DBG_HEXDUMP(CMD_D, "BSS MAC addr", priv->uap_dev.netdev->dev_addr,
++                    ETH_ALEN);
++        break;
++    case MICRO_AP_EV_BSS_ACTIVE:
++        // carrier on
++        priv->MediaConnected = TRUE;
++        os_carrier_on(priv);
++        os_start_queue(priv);
++        break;
++    case MICRO_AP_EV_BSS_IDLE:
++        os_stop_queue(priv);
++        os_carrier_off(priv);
++        priv->MediaConnected = FALSE;
++        break;
++    case EVENT_PS_AWAKE:
++        PRINTM(CMND, "UAP: PS_AWAKE\n");
++        Adapter->ps_state = PS_STATE_AWAKE;
++        Adapter->WakeupTries = 0;
++        break;
++    case EVENT_PS_SLEEP:
++        PRINTM(CMND, "UAP: PS_SLEEP\n");
++        Adapter->ps_state = PS_STATE_PRE_SLEEP;
++        break;
++    default:
++        break;
++    }
++    if ((pEvent->EventId == EVENT_PS_AWAKE) ||
++        (pEvent->EventId == EVENT_PS_SLEEP))
++        goto done;
++    if (sk) {
++        /* Allocate skb */
++        if (!(skb = alloc_skb(NLMSG_SPACE(NL_MAX_PAYLOAD), GFP_ATOMIC))) {
++            PRINTM(ERROR, "Could not allocate skb for netlink.\n");
++            ret = UAP_STATUS_FAILURE;
++            goto done;
++        }
++        nlh = (struct nlmsghdr *) skb->data;
++        nlh->nlmsg_len = NLMSG_SPACE(len);
++
++        /* From kernel */
++        nlh->nlmsg_pid = 0;
++        nlh->nlmsg_flags = 0;
++
++        /* Data */
++        skb_put(skb, nlh->nlmsg_len);
++        memcpy(NLMSG_DATA(nlh), payload, len);
++
++        /* From Kernel */
++        NETLINK_CB(skb).portid = 0;
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
++        /* Multicast message */
++        NETLINK_CB(skb).dst_pid = 0;
++#endif
++
++        /* Multicast group number */
++        NETLINK_CB(skb).dst_group = NL_MULTICAST_GROUP;
++
++        /* Send message */
++        netlink_broadcast(sk, skb, 0, NL_MULTICAST_GROUP, GFP_KERNEL);
++
++        ret = UAP_STATUS_SUCCESS;
++    } else {
++        PRINTM(ERROR, "Could not send event through NETLINK. Link down.\n");
++        ret = UAP_STATUS_FAILURE;
++    }
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function handles the interrupt. it will change PS
++ *  state if applicable. it will wake up main_thread to handle
++ *  the interrupt event as well.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return        n/a
++ */
++void
++uap_interrupt(uap_private * priv)
++{
++    ENTER();
++    priv->adapter->IntCounter++;
++    priv->adapter->WakeupTries = 0;
++    PRINTM(INFO, "*\n");
++    wake_up_interruptible(&priv->MainThread.waitQ);
++
++    LEAVE();
++
++}
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)
++/** Network device handlers */
++static const struct net_device_ops uap_netdev_ops = {
++    .ndo_open = uap_open,
++    .ndo_start_xmit = uap_hard_start_xmit,
++    .ndo_stop = uap_close,
++    .ndo_do_ioctl = uap_do_ioctl,
++    .ndo_set_mac_address = uap_set_mac_address,
++    .ndo_tx_timeout = uap_tx_timeout,
++    .ndo_get_stats = uap_get_stats,
++};
++#endif
++
++/**
++ * @brief This function adds the card. it will probe the
++ * card, allocate the uap_priv and initialize the device.
++ *
++ *  @param card    A pointer to card
++ *  @return        A pointer to uap_private structure
++ */
++uap_private *
++uap_add_card(void *card)
++{
++    struct net_device *dev = NULL;
++    uap_private *priv = NULL;
++
++    ENTER();
++
++    if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem))
++        goto exit_sem_err;
++
++    /* Allocate an Ethernet device */
++    if (!(dev = alloc_etherdev(sizeof(uap_private)))) {
++        PRINTM(FATAL, "Init ethernet device failed!\n");
++        goto error;
++    }
++    priv = (uap_private *) netdev_priv(dev);
++
++    /* Allocate name */
++    if (dev_alloc_name(dev, "uap%d") < 0) {
++        PRINTM(ERROR, "Could not allocate device name!\n");
++        goto error;
++    }
++
++    /* Allocate buffer for uap_adapter */
++    if (!(priv->adapter = kmalloc(sizeof(uap_adapter), GFP_KERNEL))) {
++        PRINTM(FATAL, "Allocate buffer for uap_adapter failed!\n");
++        goto error;
++    }
++    memset(priv->adapter, 0, sizeof(uap_adapter));
++
++    priv->uap_dev.netdev = dev;
++    priv->uap_dev.card = card;
++    priv->MediaConnected = FALSE;
++    uappriv = priv;
++    ((struct sdio_mmc_card *) card)->priv = priv;
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
++    SET_MODULE_OWNER(dev);
++#endif
++
++    /* Setup the OS Interface to our functions */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
++    dev->open = uap_open;
++    dev->stop = uap_close;
++    dev->hard_start_xmit = uap_hard_start_xmit;
++    dev->tx_timeout = uap_tx_timeout;
++    dev->get_stats = uap_get_stats;
++    dev->do_ioctl = uap_do_ioctl;
++    dev->set_mac_address = uap_set_mac_address;
++    dev->set_multicast_list = uap_set_multicast_list;
++#else
++    dev->netdev_ops = &uap_netdev_ops;
++#endif
++    dev->watchdog_timeo = MRVDRV_DEFAULT_WATCHDOG_TIMEOUT;
++    dev->hard_header_len += sizeof(TxPD) + INTF_HEADER_LEN;
++    dev->hard_header_len += HEADER_ALIGNMENT;
++#define NETIF_F_DYNALLOC 16
++    dev->features |= NETIF_F_DYNALLOC;
++    dev->flags |= IFF_BROADCAST | IFF_MULTICAST;
++
++    /* Init SW */
++    if (uap_init_sw(priv)) {
++        PRINTM(FATAL, "Software Init Failed\n");
++        goto error;
++    }
++
++    PRINTM(INFO, "Starting kthread...\n");
++    priv->MainThread.priv = priv;
++    spin_lock_init(&priv->driver_lock);
++    uap_create_thread(uap_service_main_thread, &priv->MainThread,
++                      "uap_main_service");
++    while (priv->MainThread.pid == 0) {
++        os_sched_timeout(2);
++    }
++
++    /* Register the device */
++    if (sbi_register_dev(priv) < 0) {
++        PRINTM(FATAL, "Failed to register uap device!\n");
++        goto err_registerdev;
++    }
++#ifdef FW_DNLD_NEEDED
++    SET_NETDEV_DEV(dev, priv->hotplug_device);
++#endif
++
++    /* Init FW and HW */
++    if (uap_init_fw(priv)) {
++        PRINTM(FATAL, "Firmware Init Failed\n");
++        goto err_init_fw;
++    }
++
++    priv->uap_dev.cmd_sent = FALSE;
++    priv->uap_dev.data_sent = FALSE;
++
++    /* Get mac address from firmware */
++    if (uap_get_mac_address(priv)) {
++        PRINTM(FATAL, "Fail to get mac address\n");
++        goto err_init_fw;
++    }
++    /* Register network device */
++    if (register_netdev(dev)) {
++        printk(KERN_ERR "Cannot register network device!\n");
++        goto err_init_fw;
++    }
++#ifdef CONFIG_PROC_FS
++    uap_proc_entry(priv, dev);
++    uap_debug_entry(priv, dev);
++#endif /* CPNFIG_PROC_FS */
++    OS_REL_SEMAPHORE(&AddRemoveCardSem);
++
++    LEAVE();
++    return priv;
++  err_init_fw:
++    sbi_unregister_dev(priv);
++  err_registerdev:
++    ((struct sdio_mmc_card *) card)->priv = NULL;
++    /* Stop the thread servicing the interrupts */
++    priv->adapter->SurpriseRemoved = TRUE;
++    wake_up_interruptible(&priv->MainThread.waitQ);
++    while (priv->MainThread.pid) {
++        os_sched_timeout(1);
++    }
++  error:
++    if (dev) {
++        if (dev->reg_state == NETREG_REGISTERED)
++            unregister_netdev(dev);
++        if (priv->adapter)
++            uap_free_adapter(priv);
++        free_netdev(dev);
++        uappriv = NULL;
++    }
++    OS_REL_SEMAPHORE(&AddRemoveCardSem);
++  exit_sem_err:
++    LEAVE();
++    return NULL;
++}
++
++/**
++ *  @brief This function removes the card.
++ *
++ *  @param card    A pointer to card
++ *  @return        UAP_STATUS_SUCCESS
++ */
++int
++uap_remove_card(void *card)
++{
++    uap_private *priv = uappriv;
++    uap_adapter *Adapter;
++    struct net_device *dev;
++
++    ENTER();
++
++    if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem))
++        goto exit_sem_err;
++
++    if (!priv || !(Adapter = priv->adapter)) {
++        goto exit_remove;
++    }
++    Adapter->SurpriseRemoved = TRUE;
++    if (Adapter->cmd_pending == TRUE) {
++        /* Wake up cmd Q */
++        Adapter->CmdWaitQWoken = TRUE;
++        wake_up_interruptible(&Adapter->cmdwait_q);
++    }
++    dev = priv->uap_dev.netdev;
++    if (priv->MediaConnected == TRUE) {
++        os_stop_queue(priv);
++        os_carrier_off(priv);
++        priv->MediaConnected = FALSE;
++    }
++    Adapter->CmdSize = 0;
++    Adapter->CmdWaitQWoken = TRUE;
++    wake_up_interruptible(&Adapter->cmdwait_q);
++    skb_queue_purge(&priv->adapter->tx_queue);
++    skb_queue_purge(&priv->adapter->cmd_queue);
++
++    /* Disable interrupts on the card */
++    sbi_disable_host_int(priv);
++    PRINTM(INFO, "netdev_finish_unregister: %s%s.\n", dev->name,
++           (dev->features & NETIF_F_DYNALLOC) ? "" : ", old style");
++    unregister_netdev(dev);
++    PRINTM(INFO, "Unregister finish\n");
++    wake_up_interruptible(&priv->MainThread.waitQ);
++    while (priv->MainThread.pid) {
++        os_sched_timeout(1);
++    }
++
++    if ((Adapter->nl_sk) && ((Adapter->nl_sk)->sk_socket)) {
++        sock_release((Adapter->nl_sk)->sk_socket);
++        Adapter->nl_sk = NULL;
++    }
++#ifdef CONFIG_PROC_FS
++    uap_debug_remove(priv);
++    uap_proc_remove(priv);
++#endif
++    sbi_unregister_dev(priv);
++    PRINTM(INFO, "Free Adapter\n");
++    uap_free_adapter(priv);
++    priv->uap_dev.netdev = NULL;
++    free_netdev(dev);
++    uappriv = NULL;
++
++  exit_remove:
++    OS_REL_SEMAPHORE(&AddRemoveCardSem);
++  exit_sem_err:
++    LEAVE();
++    return UAP_STATUS_SUCCESS;
++}
++
++/**
++ *  @brief This function initializes module.
++ *
++ *  @return    UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int __init
++uap_init_module(void)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    ENTER();
++
++    OS_INIT_SEMAPHORE(&AddRemoveCardSem);
++    ret = sbi_register();
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function cleans module
++ *
++ *  @return        n/a
++ */
++static void __exit
++uap_cleanup_module(void)
++{
++    ENTER();
++
++    if (OS_ACQ_SEMAPHORE_BLOCK(&AddRemoveCardSem))
++        goto exit_sem_err;
++
++    if ((uappriv) && (uappriv->adapter)) {
++        uap_func_shutdown(uappriv);
++    }
++    OS_REL_SEMAPHORE(&AddRemoveCardSem);
++  exit_sem_err:
++    sbi_unregister();
++    LEAVE();
++}
++
++module_init(uap_init_module);
++module_exit(uap_cleanup_module);
++module_param(helper_name, charp, 0);
++MODULE_PARM_DESC(helper_name, "Helper name");
++module_param(fw_name, charp, 0);
++MODULE_PARM_DESC(fw_name, "Firmware name");
++
++MODULE_DESCRIPTION("M-UAP Driver");
++MODULE_AUTHOR("Marvell International Ltd.");
++MODULE_VERSION(DRIVER_VERSION);
++MODULE_LICENSE("GPL");
+diff --git a/drivers/net/wireless/libertas_uap/uap_proc.c b/drivers/net/wireless/libertas_uap/uap_proc.c
+new file mode 100644
+index 0000000..d673f56
+--- /dev/null
++++ b/drivers/net/wireless/libertas_uap/uap_proc.c
+@@ -0,0 +1,258 @@
++/** @file uap_proc.c
++  * @brief This file contains functions for proc file.
++  *
++  * Copyright (C) 2008-2009, Marvell International Ltd.
++  *
++  * This software file (the "File") is distributed by Marvell International
++  * Ltd. under the terms of the GNU General Public License Version 2, June 1991
++  * (the "License").  You may use, redistribute and/or modify this File in
++  * accordance with the terms and conditions of the License, a copy of which
++  * is available along with the File in the gpl.txt file or by writing to
++  * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++  * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
++  *
++  * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
++  * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
++  * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
++  * this warranty disclaimer.
++  *
++  */
++#ifdef CONFIG_PROC_FS
++#include <linux/proc_fs.h>
++#include <linux/seq_file.h>
++#include "uap_headers.h"
++
++/** /proc directory root */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
++#define PROC_DIR NULL
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
++#define PROC_DIR &proc_root
++#else
++#define PROC_DIR proc_net
++#endif
++
++/********************************************************
++              Local Variables
++********************************************************/
++
++/********************************************************
++              Global Variables
++********************************************************/
++
++/********************************************************
++              Local Functions
++********************************************************/
++
++static int uap_info_proc_show(struct seq_file *s, void *data) {
++    int i;
++    struct net_device *netdev = (struct net_device*)s->private;
++    struct netdev_hw_addr *ha;
++    uap_private *priv = (uap_private *) netdev_priv(netdev);
++
++    seq_printf(s, "driver_name = " "\"uap\"\n");
++    seq_printf(s, "driver_version = %s-(FP%s)", DRIVER_VERSION, FPNUM);
++    seq_printf(s, "\nInterfaceName=\"%s\"\n", netdev->name);
++
++    seq_printf(s, "State=\"%s\"\n",
++                 ((priv->MediaConnected ==
++                   FALSE) ? "Disconnected" : "Connected"));
++    seq_printf(s, "MACAddress=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
++                 netdev->dev_addr[0], netdev->dev_addr[1], netdev->dev_addr[2],
++                 netdev->dev_addr[3], netdev->dev_addr[4], netdev->dev_addr[5]);
++    i = 0;
++    netdev_for_each_mc_addr(ha, netdev) {
++        ++i;
++    }
++    seq_printf(s, "MCCount=\"%d\"\n", i);
++
++    /*
++     * Put out the multicast list
++     */
++    i = 0;
++    netdev_for_each_mc_addr(ha, netdev) {
++        seq_printf(s,
++                     "MCAddr[%d]=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
++                     i++,
++                     ha->addr[0], ha->addr[1],
++                     ha->addr[2], ha->addr[3],
++                     ha->addr[4], ha->addr[5]);
++    }
++
++    seq_printf(s, "num_tx_bytes = %lu\n", priv->stats.tx_bytes);
++    seq_printf(s, "num_rx_bytes = %lu\n", priv->stats.rx_bytes);
++    seq_printf(s, "num_tx_pkts = %lu\n", priv->stats.tx_packets);
++    seq_printf(s, "num_rx_pkts = %lu\n", priv->stats.rx_packets);
++    seq_printf(s, "num_tx_pkts_dropped = %lu\n", priv->stats.tx_dropped);
++    seq_printf(s, "num_rx_pkts_dropped = %lu\n", priv->stats.rx_dropped);
++    seq_printf(s, "num_tx_pkts_err = %lu\n", priv->stats.tx_errors);
++    seq_printf(s, "num_rx_pkts_err = %lu\n", priv->stats.rx_errors);
++    seq_printf(s, "num_tx_timeout = %u\n", priv->num_tx_timeout);
++    seq_printf(s, "carrier %s\n",
++                 ((netif_carrier_ok(priv->uap_dev.netdev)) ? "on" : "off"));
++    seq_printf(s, "tx queue %s\n",
++                 ((netif_queue_stopped(priv->uap_dev.netdev)) ? "stopped" :
++                  "started"));
++
++    return 0;
++}
++
++static int uap_info_proc_open(struct inode *inode, struct file *file) {
++      return single_open(file, uap_info_proc_show, PDE_DATA(inode));
++}
++
++static int uap_hwstatus_proc_show(struct seq_file *s, void *data) {
++    struct net_device *netdev = (struct net_device*)s->private;
++    uap_private *priv = (uap_private *) netdev_priv(netdev);
++
++    MODULE_GET;
++    seq_printf(s, "%d\n", priv->adapter->HardwareStatus);
++    MODULE_PUT;
++
++    return 0;
++}
++
++static int uap_hwstatus_proc_open(struct inode *inode, struct file *file) {
++      return single_open(file, uap_hwstatus_proc_show, PDE_DATA(inode));
++}
++
++static ssize_t uap_hwstatus_proc_write(struct file *file, const char __user *buffer, size_t count, loff_t *data) {
++      struct net_device *netdev = (struct net_device *)PDE_DATA(file_inode(file));
++      uap_private *priv = (uap_private *) netdev_priv(netdev);
++
++      int hwstatus;
++      char value[10];
++
++      if (count > sizeof(value))
++              return count;
++
++      if (copy_from_user(&value, buffer, count))
++              return -EFAULT;
++
++      hwstatus = string_to_number(value);
++      switch (hwstatus) {
++      case HWReset:
++              PRINTM(MSG, "reset hw\n");
++              uap_soft_reset(priv);
++              priv->adapter->HardwareStatus = HWReset;
++              break;
++      default:
++              break;
++      }
++
++      MODULE_PUT;
++      return count;
++}
++
++static const struct file_operations uap_info_proc_fops = {
++      .owner   = THIS_MODULE,
++      .open    = uap_info_proc_open,
++      .read    = seq_read,
++      .llseek  = seq_lseek,
++      .release = single_release,
++};
++
++static const struct file_operations uap_hwstatus_proc_fops = {
++      .owner   = THIS_MODULE,
++      .open    = uap_hwstatus_proc_open,
++      .read    = seq_read,
++      .llseek  = seq_lseek,
++      .release = single_release,
++      .write   = uap_hwstatus_proc_write,
++};
++
++/********************************************************
++              Global Functions
++********************************************************/
++/**
++ *  @brief create uap proc file
++ *
++ *  @param priv          pointer uap_private
++ *  @param dev     pointer net_device
++ *  @return      N/A
++ */
++void
++uap_proc_entry(uap_private * priv, struct net_device *dev)
++{
++    PRINTM(INFO, "Creating Proc Interface\n");
++    /* Check if uap directory already exists */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
++    struct proc_dir_entry *r = PROC_DIR;
++
++    for (r = r->subdir; r; r = r->next) {
++        if (r->namelen && !strcmp("uap", r->name)) {
++            /* Directory exists */
++            PRINTM(WARN, "proc directory already exists!\n");
++            priv->proc_uap = r;
++            break;
++        }
++    }
++#endif
++    if (!priv->proc_uap) {
++        priv->proc_uap = proc_mkdir("uap", PROC_DIR);
++        if (!priv->proc_uap)
++            return;
++    }
++    priv->proc_entry = proc_mkdir(dev->name, priv->proc_uap);
++
++    if (priv->proc_entry) {
++      proc_create_data("info", 0644, priv->proc_entry, &uap_info_proc_fops, dev);
++      proc_create_data("hwinfo", 0644, priv->proc_entry, &uap_hwstatus_proc_fops, dev);
++    }
++}
++
++/**
++ *  @brief remove proc file
++ *
++ *  @param priv          pointer uap_private
++ *  @return      N/A
++ */
++void
++uap_proc_remove(uap_private * priv)
++{
++    if (priv->proc_uap) {
++        if (priv->proc_entry) {
++            remove_proc_entry("info", priv->proc_entry);
++            remove_proc_entry("hwstatus", priv->proc_entry);
++        }
++        remove_proc_entry(priv->uap_dev.netdev->name, priv->proc_uap);
++    }
++}
++
++/**
++ *  @brief convert string to number
++ *
++ *  @param s     pointer to numbered string
++ *  @return      converted number from string s
++ */
++int
++string_to_number(char *s)
++{
++    int r = 0;
++    int base = 0;
++    int pn = 1;
++
++    if (strncmp(s, "-", 1) == 0) {
++        pn = -1;
++        s++;
++    }
++    if ((strncmp(s, "0x", 2) == 0) || (strncmp(s, "0X", 2) == 0)) {
++        base = 16;
++        s += 2;
++    } else
++        base = 10;
++
++    for (s = s; *s != 0; s++) {
++        if ((*s >= '0') && (*s <= '9'))
++            r = (r * base) + (*s - '0');
++        else if ((*s >= 'A') && (*s <= 'F'))
++            r = (r * base) + (*s - 'A' + 10);
++        else if ((*s >= 'a') && (*s <= 'f'))
++            r = (r * base) + (*s - 'a' + 10);
++        else
++            break;
++    }
++
++    return (r * pn);
++}
++
++#endif
+diff --git a/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c b/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c
+new file mode 100644
+index 0000000..86f55b5
+--- /dev/null
++++ b/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c
+@@ -0,0 +1,1428 @@
++/** @file uap_sdio_mmc.c
++ *  @brief This file contains SDIO IF (interface) module
++ *  related functions.
++ *
++ * Copyright (C) 2007-2009, Marvell International Ltd.
++ *
++ * This software file (the "File") is distributed by Marvell International
++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
++ * (the "License").  You may use, redistribute and/or modify this File in
++ * accordance with the terms and conditions of the License, a copy of which
++ * is available along with the File in the gpl.txt file or by writing to
++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
++ *
++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
++ * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
++ * this warranty disclaimer.
++ *
++ */
++/****************************************************
++Change log:
++****************************************************/
++
++#include      "uap_sdio_mmc.h"
++
++#include <linux/firmware.h>
++
++/** define SDIO block size */
++/* We support up to 480-byte block size due to FW buffer limitation. */
++#define SD_BLOCK_SIZE         256
++
++/** define allocated buffer size */
++#define ALLOC_BUF_SIZE                (((MAX(MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, \
++                                      MRVDRV_SIZE_OF_CMD_BUFFER) + INTF_HEADER_LEN \
++                                      + SD_BLOCK_SIZE - 1) / SD_BLOCK_SIZE) * SD_BLOCK_SIZE)
++
++/** Max retry number of CMD53 write */
++#define MAX_WRITE_IOMEM_RETRY 2
++
++/********************************************************
++              Local Variables
++********************************************************/
++
++/** SDIO Rx unit */
++static u8 sdio_rx_unit = 0;
++
++/**Interrupt status */
++static u8 sd_ireg = 0;
++/********************************************************
++              Global Variables
++********************************************************/
++extern u8 *helper_name;
++extern u8 *fw_name;
++/** Default helper name */
++#define DEFAULT_HELPER_NAME "mrvl/helper_sd.bin"
++/** Default firmware name */
++#define DEFAULT_FW_NAME "mrvl/sd8688_ap.bin"
++
++/********************************************************
++              Local Functions
++********************************************************/
++/**
++ *  @brief This function reads the IO register.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param reg           register to be read
++ *  @param dat           A pointer to variable that keeps returned value
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++sbi_read_ioreg(uap_private * priv, u32 reg, u8 * dat)
++{
++    struct sdio_mmc_card *card;
++    int ret = UAP_STATUS_FAILURE;
++
++    ENTER();
++
++    card = priv->uap_dev.card;
++    if (!card || !card->func) {
++        PRINTM(ERROR, "sbi_read_ioreg(): card or function is NULL!\n");
++        goto done;
++    }
++
++    *dat = sdio_readb(card->func, reg, &ret);
++    if (ret) {
++        PRINTM(ERROR, "sbi_read_ioreg(): sdio_readb failed! ret=%d\n", ret);
++        goto done;
++    }
++
++    PRINTM(INFO, "sbi_read_ioreg() priv=%p func=%d reg=%#x dat=%#x\n", priv,
++           card->func->num, reg, *dat);
++
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function writes the IO register.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param reg           register to be written
++ *  @param dat           the value to be written
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++sbi_write_ioreg(uap_private * priv, u32 reg, u8 dat)
++{
++    struct sdio_mmc_card *card;
++    int ret = UAP_STATUS_FAILURE;
++
++    ENTER();
++
++    card = priv->uap_dev.card;
++    if (!card || !card->func) {
++        PRINTM(ERROR, "sbi_write_ioreg(): card or function is NULL!\n");
++        goto done;
++    }
++
++    PRINTM(INFO, "sbi_write_ioreg() priv=%p func=%d reg=%#x dat=%#x\n", priv,
++           card->func->num, reg, dat);
++
++    sdio_writeb(card->func, dat, reg, &ret);
++    if (ret) {
++        PRINTM(ERROR, "sbi_write_ioreg(): sdio_readb failed! ret=%d\n", ret);
++        goto done;
++    }
++
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function get rx_unit value
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++sd_get_rx_unit(uap_private * priv)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u8 reg;
++
++    ENTER();
++
++    ret = sbi_read_ioreg(priv, CARD_RX_UNIT_REG, &reg);
++    if (ret == UAP_STATUS_SUCCESS)
++        sdio_rx_unit = reg;
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function reads rx length
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param dat           A pointer to keep returned data
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++sd_read_rx_len(uap_private * priv, u16 * dat)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u8 reg;
++
++    ENTER();
++
++    ret = sbi_read_ioreg(priv, CARD_RX_LEN_REG, &reg);
++    if (ret == UAP_STATUS_SUCCESS)
++        *dat = (u16) reg << sdio_rx_unit;
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function reads fw status registers
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param dat           A pointer to keep returned data
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++sd_read_firmware_status(uap_private * priv, u16 * dat)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u8 fws0;
++    u8 fws1;
++
++    ENTER();
++
++    ret = sbi_read_ioreg(priv, CARD_FW_STATUS0_REG, &fws0);
++    if (ret < 0) {
++        LEAVE();
++        return UAP_STATUS_FAILURE;
++    }
++
++    ret = sbi_read_ioreg(priv, CARD_FW_STATUS1_REG, &fws1);
++    if (ret < 0) {
++        LEAVE();
++        return UAP_STATUS_FAILURE;
++    }
++
++    *dat = (((u16) fws1) << 8) | fws0;
++
++    LEAVE();
++    return UAP_STATUS_SUCCESS;
++}
++
++/**
++ *  @brief This function polls the card status register.
++ *
++ *  @param priv       A pointer to uap_private structure
++ *  @param bits       the bit mask
++ *  @return           UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++mv_sdio_poll_card_status(uap_private * priv, u8 bits)
++{
++    int tries;
++    u8 cs;
++
++    ENTER();
++
++    for (tries = 0; tries < MAX_POLL_TRIES; tries++) {
++        if (sbi_read_ioreg(priv, CARD_STATUS_REG, &cs) < 0)
++            break;
++        else if ((cs & bits) == bits) {
++            LEAVE();
++            return UAP_STATUS_SUCCESS;
++        }
++        udelay(10);
++    }
++
++    PRINTM(WARN, "mv_sdio_poll_card_status failed, tries = %d\n", tries);
++
++    LEAVE();
++    return UAP_STATUS_FAILURE;
++}
++
++/**
++ *  @brief This function set the sdio bus width.
++ *
++ *  @param priv       A pointer to uap_private structure
++ *  @param mode       1--1 bit mode, 4--4 bit mode
++ *  @return           UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++#if 0
++static int
++sdio_set_bus_width(uap_private * priv, u8 mode)
++{
++    ENTER();
++    LEAVE();
++    return UAP_STATUS_SUCCESS;
++}
++#endif
++
++/**
++ *  @brief This function reads data from the card.
++ *
++ *  @param priv       A pointer to uap_private structure
++ *  @return           UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++sd_card_to_host(uap_private * priv)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u16 buf_len = 0;
++    int buf_block_len;
++    int blksz;
++    struct sk_buff *skb = NULL;
++    u16 type;
++    u8 *payload = NULL;
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++
++    ENTER();
++
++    if (!card || !card->func) {
++        PRINTM(ERROR, "card or function is NULL!\n");
++        ret = UAP_STATUS_FAILURE;
++        goto exit;
++    }
++
++    /* Read the length of data to be transferred */
++    ret = sd_read_rx_len(priv, &buf_len);
++    if (ret < 0) {
++        PRINTM(ERROR, "card_to_host, read scratch reg failed\n");
++        ret = UAP_STATUS_FAILURE;
++        goto exit;
++    }
++
++    /* Allocate buffer */
++    blksz = SD_BLOCK_SIZE;
++    buf_block_len = (buf_len + blksz - 1) / blksz;
++    if (buf_len <= INTF_HEADER_LEN || (buf_block_len * blksz) > ALLOC_BUF_SIZE) {
++        PRINTM(ERROR, "card_to_host, invalid packet length: %d\n", buf_len);
++        ret = UAP_STATUS_FAILURE;
++        goto exit;
++    }
++#ifdef PXA3XX_DMA_ALIGN
++    skb = dev_alloc_skb(buf_block_len * blksz + PXA3XX_DMA_ALIGNMENT);
++#else
++    skb = dev_alloc_skb(buf_block_len * blksz);
++#endif
++    if (skb == NULL) {
++        PRINTM(WARN, "No free skb\n");
++        goto exit;
++    }
++#ifdef PXA3XX_DMA_ALIGN
++    if ((u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1)) {
++        skb_put(skb, (u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1));
++        skb_pull(skb, (u32) skb->data & (PXA3XX_DMA_ALIGNMENT - 1));
++    }
++#endif /* PXA3XX_DMA_ALIGN */
++
++    payload = skb->tail;
++    ret = sdio_readsb(card->func, payload, priv->uap_dev.ioport,
++                      buf_block_len * blksz);
++    if (ret < 0) {
++        PRINTM(ERROR, "card_to_host, read iomem failed: %d\n", ret);
++        ret = UAP_STATUS_FAILURE;
++        goto exit;
++    }
++    HEXDUMP("SDIO Blk Rd", payload, blksz * buf_block_len);
++    /*
++     * This is SDIO specific header
++     *  u16 length,
++     *  u16 type (MV_TYPE_DAT = 0, MV_TYPE_CMD = 1, MV_TYPE_EVENT = 3)
++     */
++    buf_len = uap_le16_to_cpu(*(u16 *) & payload[0]);
++    type = uap_le16_to_cpu(*(u16 *) & payload[2]);
++    switch (type) {
++    case MV_TYPE_EVENT:
++        skb_put(skb, buf_len);
++        skb_pull(skb, INTF_HEADER_LEN);
++        uap_process_event(priv, skb->data, skb->len);
++        kfree_skb(skb);
++        skb = NULL;
++        break;
++    case MV_TYPE_CMD:
++        skb_put(skb, buf_len);
++        skb_pull(skb, INTF_HEADER_LEN);
++        priv->adapter->cmd_pending = FALSE;
++        if (priv->adapter->cmd_wait_option ==
++            HostCmd_OPTION_WAITFORRSP_SLEEPCONFIRM) {
++            priv->adapter->cmd_wait_option = FALSE;
++            uap_process_sleep_confirm_resp(priv, skb->data, skb->len);
++        } else if (priv->adapter->cmd_wait_option) {
++            memcpy(priv->adapter->CmdBuf, skb->data, skb->len);
++            priv->adapter->CmdSize = skb->len;
++            priv->adapter->cmd_wait_option = FALSE;
++            priv->adapter->CmdWaitQWoken = TRUE;
++            wake_up_interruptible(&priv->adapter->cmdwait_q);
++        }
++        kfree_skb(skb);
++        skb = NULL;
++        break;
++    case MV_TYPE_DAT:
++        skb_put(skb, buf_len);
++        skb_pull(skb, INTF_HEADER_LEN);
++        uap_process_rx_packet(priv, skb);
++        break;
++    default:
++        priv->stats.rx_errors++;
++        priv->stats.rx_dropped++;
++        /* Driver specified event and command resp should be handle here */
++        PRINTM(INFO, "Unknown PKT type:%d\n", type);
++        kfree_skb(skb);
++        skb = NULL;
++        break;
++    }
++  exit:
++    if (ret) {
++        if (skb)
++            kfree_skb(skb);
++    }
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function enables the host interrupts mask
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param mask          the interrupt mask
++ *  @return      UAP_STATUS_SUCCESS
++ */
++static int
++enable_host_int_mask(uap_private * priv, u8 mask)
++{
++    int ret = UAP_STATUS_SUCCESS;
++
++    ENTER();
++
++    /* Simply write the mask to the register */
++    ret = sbi_write_ioreg(priv, HOST_INT_MASK_REG, mask);
++
++    if (ret) {
++        PRINTM(WARN, "Unable to enable the host interrupt!\n");
++        ret = UAP_STATUS_FAILURE;
++    }
++
++    LEAVE();
++    return ret;
++}
++
++/**  @brief This function disables the host interrupts mask.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param mask          the interrupt mask
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++disable_host_int_mask(uap_private * priv, u8 mask)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u8 host_int_mask;
++
++    ENTER();
++
++    /* Read back the host_int_mask register */
++    ret = sbi_read_ioreg(priv, HOST_INT_MASK_REG, &host_int_mask);
++    if (ret) {
++        ret = UAP_STATUS_FAILURE;
++        goto done;
++    }
++
++    /* Update with the mask and write back to the register */
++    host_int_mask &= ~mask;
++    ret = sbi_write_ioreg(priv, HOST_INT_MASK_REG, host_int_mask);
++    if (ret < 0) {
++        PRINTM(WARN, "Unable to diable the host interrupt!\n");
++        ret = UAP_STATUS_FAILURE;
++        goto done;
++    }
++
++  done:
++    LEAVE();
++    return ret;
++}
++
++/********************************************************
++              Global Functions
++********************************************************/
++
++/**
++ *  @brief This function handles the interrupt.
++ *
++ *  @param func          A pointer to sdio_func structure.
++ *  @return      n/a
++ */
++static void
++sbi_interrupt(struct sdio_func *func)
++{
++    struct sdio_mmc_card *card;
++    uap_private *priv;
++    u8 ireg = 0;
++    int ret = UAP_STATUS_SUCCESS;
++
++    ENTER();
++
++    card = sdio_get_drvdata(func);
++    if (!card || !card->priv) {
++        PRINTM(MSG, "%s: sbi_interrupt(%p) card or priv is NULL, card=%p\n",
++               __FUNCTION__, func, card);
++        LEAVE();
++        return;
++    }
++    priv = card->priv;
++#ifdef FW_WAKEUP_TIME
++    if ((priv->adapter->wt_pwrup_sending != 0L) &&
++        (priv->adapter->wt_int == 0L))
++        priv->adapter->wt_int = get_utimeofday();
++#endif
++
++    ireg = sdio_readb(card->func, HOST_INTSTATUS_REG, &ret);
++    if (ret) {
++        PRINTM(WARN, "sdio_read_ioreg: read int status register failed\n");
++        goto done;
++    }
++    if (ireg != 0) {
++        /*
++         * DN_LD_HOST_INT_STATUS and/or UP_LD_HOST_INT_STATUS
++         * Clear the interrupt status register and re-enable the interrupt
++         */
++        PRINTM(INFO, "sdio_ireg = 0x%x\n", ireg);
++        sdio_writeb(card->func,
++                    ~(ireg) & (DN_LD_HOST_INT_STATUS | UP_LD_HOST_INT_STATUS),
++                    HOST_INTSTATUS_REG, &ret);
++        if (ret) {
++            PRINTM(WARN,
++                   "sdio_write_ioreg: clear int status register failed\n");
++            goto done;
++        }
++    }
++    OS_INT_DISABLE;
++    sd_ireg |= ireg;
++    OS_INT_RESTORE;
++
++    uap_interrupt(priv);
++  done:
++    LEAVE();
++}
++
++/**
++ *  @brief This function probe the card
++ *
++ *  @param func    A pointer to sdio_func structure
++ *  @param id    A pointer to structure sd_device_id
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++static int
++uap_probe(struct sdio_func *func, const struct sdio_device_id *id)
++{
++    int ret = UAP_STATUS_FAILURE;
++    struct sdio_mmc_card *card = NULL;
++
++    ENTER();
++
++    PRINTM(MSG, "%s: vendor=0x%4.04X device=0x%4.04X class=%d function=%d\n",
++           __FUNCTION__, func->vendor, func->device, func->class, func->num);
++
++    card = kzalloc(sizeof(struct sdio_mmc_card), GFP_KERNEL);
++    if (!card) {
++        ret = -ENOMEM;
++        goto done;
++    }
++
++    card->func = func;
++
++    if (!uap_add_card(card)) {
++        PRINTM(ERROR, "%s: uap_add_callback failed\n", __FUNCTION__);
++        kfree(card);
++        ret = UAP_STATUS_FAILURE;
++        goto done;
++    }
++
++    ret = UAP_STATUS_SUCCESS;
++
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function removes the card
++ *
++ *  @param func    A pointer to sdio_func structure
++ *  @return        N/A
++ */
++static void
++uap_remove(struct sdio_func *func)
++{
++    struct sdio_mmc_card *card;
++
++    ENTER();
++
++    if (func) {
++        card = sdio_get_drvdata(func);
++        if (card) {
++            uap_remove_card(card);
++            kfree(card);
++        }
++    }
++
++    LEAVE();
++}
++
++#ifdef CONFIG_PM
++/**
++ *  @brief This function handles client driver suspend
++ *
++ *  @param func    A pointer to sdio_func structure
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++uap_suspend(struct sdio_func *func)
++{
++    ENTER();
++    LEAVE();
++    return 0;
++}
++
++/**
++ *  @brief This function handles client driver resume
++ *
++ *  @param func    A pointer to sdio_func structure
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++uap_resume(struct sdio_func *func)
++{
++    ENTER();
++    LEAVE();
++    return 0;
++}
++#endif
++
++/** Device ID for SD8688 */
++#define  SD_DEVICE_ID_8688_UAP 0x9104
++/** UAP IDs */
++static const struct sdio_device_id uap_ids[] = {
++    {SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL, SD_DEVICE_ID_8688_UAP)},
++    {},
++};
++
++MODULE_DEVICE_TABLE(sdio, uap_ids);
++
++static struct sdio_driver uap_sdio = {
++    .name = "uap_sdio",
++    .id_table = uap_ids,
++    .probe = uap_probe,
++    .remove = uap_remove,
++#ifdef CONFIG_PM
++/*    .suspend        = uap_suspend, */
++/*    .resume = uap_resume, */
++#endif
++
++};
++
++/**
++ *  @brief This function registers the IF module in bus driver.
++ *
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int __init
++sbi_register()
++{
++    int ret = UAP_STATUS_SUCCESS;
++
++    ENTER();
++
++    /* SDIO Driver Registration */
++    if (sdio_register_driver(&uap_sdio) != 0) {
++        PRINTM(FATAL, "SDIO Driver Registration Failed \n");
++        ret = UAP_STATUS_FAILURE;
++    }
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function de-registers the IF module in bus driver.
++ *
++ *  @return      n/a
++ */
++void __exit
++sbi_unregister(void)
++{
++    ENTER();
++
++    /* SDIO Driver Unregistration */
++    sdio_unregister_driver(&uap_sdio);
++
++    LEAVE();
++}
++
++/**
++ *  @brief This function checks the interrupt status and handle it accordingly.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param ireg    A pointer to variable that keeps returned value
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++sbi_get_int_status(uap_private * priv, u8 * ireg)
++{
++    int ret = UAP_STATUS_SUCCESS;
++    u8 sdio_ireg = 0;
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++
++    ENTER();
++
++    *ireg = 0;
++    OS_INT_DISABLE;
++    sdio_ireg = sd_ireg;
++    sd_ireg = 0;
++    OS_INT_RESTORE;
++
++    sdio_claim_host(card->func);
++
++    if (sdio_ireg & DN_LD_HOST_INT_STATUS) {    /* tx_done INT */
++        if (!priv->uap_dev.cmd_sent) {  /* tx_done already received */
++            PRINTM(INFO,
++                   "warning: tx_done already received: tx_dnld_rdy=0x%x int status=0x%x\n",
++                   priv->uap_dev.cmd_sent, sdio_ireg);
++        } else {
++            priv->uap_dev.cmd_sent = FALSE;
++            priv->uap_dev.data_sent = FALSE;
++            if ( (priv->uap_dev.netdev->reg_state == NETREG_REGISTERED) && (skb_queue_len(&priv->adapter->tx_queue) < TX_LOW_WATERMARK)) {
++                os_start_queue(priv);
++          }
++        }
++    }
++    if (sdio_ireg & UP_LD_HOST_INT_STATUS) {
++        sd_card_to_host(priv);
++    }
++
++    *ireg = sdio_ireg;
++    ret = UAP_STATUS_SUCCESS;
++    sdio_release_host(card->func);
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function disables the host interrupts.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++sbi_disable_host_int(uap_private * priv)
++{
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++    int ret;
++
++    ENTER();
++
++    sdio_claim_host(card->func);
++    ret = disable_host_int_mask(priv, HIM_DISABLE);
++    sdio_release_host(card->func);
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function enables the host interrupts.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS
++ */
++int
++sbi_enable_host_int(uap_private * priv)
++{
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++    int ret;
++
++    ENTER();
++
++    sdio_claim_host(card->func);
++    ret = enable_host_int_mask(priv, HIM_ENABLE);
++    sdio_release_host(card->func);
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function de-registers the device.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS
++ */
++int
++sbi_unregister_dev(uap_private * priv)
++{
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++
++    ENTER();
++
++    if (!card || !card->func) {
++        PRINTM(ERROR, "Error: card or function is NULL!\n");
++        goto done;
++    }
++
++    sdio_claim_host(card->func);
++    sdio_release_irq(card->func);
++    sdio_disable_func(card->func);
++    sdio_release_host(card->func);
++
++    sdio_set_drvdata(card->func, NULL);
++
++  done:
++    LEAVE();
++    return UAP_STATUS_SUCCESS;
++}
++
++/**
++ *  @brief This function registers the device.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++sbi_register_dev(uap_private * priv)
++{
++    int ret = UAP_STATUS_FAILURE;
++    u8 reg;
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++    struct sdio_func *func;
++
++    ENTER();
++
++    if (!card || !card->func) {
++        PRINTM(ERROR, "Error: card or function is NULL!\n");
++        goto done;
++    }
++
++    func = card->func;
++
++    /* Initialize the private structure */
++    priv->uap_dev.ioport = 0;
++
++    sdio_claim_host(func);
++
++    ret = sdio_enable_func(func);
++    if (ret) {
++        PRINTM(FATAL, "sdio_enable_func() failed: ret=%d\n", ret);
++        goto release_host;
++    }
++
++    ret = sdio_claim_irq(func, sbi_interrupt);
++    if (ret) {
++        PRINTM(FATAL, "sdio_claim_irq failed: ret=%d\n", ret);
++        goto disable_func;
++    }
++
++    /* Read the IO port */
++    ret = sbi_read_ioreg(priv, IO_PORT_0_REG, &reg);
++    if (ret)
++        goto release_irq;
++    else
++        priv->uap_dev.ioport |= reg;
++
++    ret = sbi_read_ioreg(priv, IO_PORT_1_REG, &reg);
++    if (ret)
++        goto release_irq;
++    else
++        priv->uap_dev.ioport |= (reg << 8);
++
++    ret = sbi_read_ioreg(priv, IO_PORT_2_REG, &reg);
++    if (ret)
++        goto release_irq;
++    else
++        priv->uap_dev.ioport |= (reg << 16);
++
++    PRINTM(INFO, "SDIO FUNC #%d IO port: 0x%x\n", func->num,
++           priv->uap_dev.ioport);
++
++    ret = sdio_set_block_size(card->func, SD_BLOCK_SIZE);
++    if (ret) {
++        PRINTM(ERROR, "%s: cannot set SDIO block size\n", __FUNCTION__);
++        ret = UAP_STATUS_FAILURE;
++        goto release_irq;
++    }
++    priv->hotplug_device = &func->dev;
++
++    if (helper_name == NULL) {
++        helper_name = DEFAULT_HELPER_NAME;
++    }
++    if (fw_name == NULL) {
++        fw_name = DEFAULT_FW_NAME;
++    }
++    sdio_release_host(func);
++
++    sdio_set_drvdata(func, card);
++
++    ret = UAP_STATUS_SUCCESS;
++    goto done;
++
++  release_irq:
++    sdio_release_irq(func);
++  disable_func:
++    sdio_disable_func(func);
++  release_host:
++    sdio_release_host(func);
++
++  done:
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function sends data to the card.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param payload A pointer to the data/cmd buffer
++ *  @param nb    the length of data/cmd
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++sbi_host_to_card(uap_private * priv, u8 * payload, u16 nb)
++{
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++    int ret = UAP_STATUS_SUCCESS;
++    int buf_block_len;
++    int blksz;
++    int i = 0;
++    u8 *buf = NULL;
++#ifdef PXA3XX_DMA_ALIGN
++    void *tmpbuf = NULL;
++    int tmpbufsz;
++#endif
++
++    ENTER();
++
++    if (!card || !card->func) {
++        PRINTM(ERROR, "card or function is NULL!\n");
++        LEAVE();
++        return UAP_STATUS_FAILURE;
++    }
++    buf = payload;
++#ifdef PXA3XX_DMA_ALIGN
++    if ((u32) payload & (PXA3XX_DMA_ALIGNMENT - 1)) {
++        tmpbufsz = ALIGN_SZ(nb, PXA3XX_DMA_ALIGNMENT);
++        tmpbuf = kmalloc(tmpbufsz, GFP_KERNEL);
++        memset(tmpbuf, 0, tmpbufsz);
++        /* Ensure 8-byte aligned CMD buffer */
++        buf = (u8 *) ALIGN_ADDR(tmpbuf, PXA3XX_DMA_ALIGNMENT);
++        memcpy(buf, payload, nb);
++    }
++#endif
++    /* Allocate buffer and copy payload */
++    blksz = SD_BLOCK_SIZE;
++    buf_block_len = (nb + blksz - 1) / blksz;
++    sdio_claim_host(card->func);
++#define MAX_WRITE_IOMEM_RETRY 2
++    priv->uap_dev.cmd_sent = TRUE;
++    priv->uap_dev.data_sent = TRUE;
++    do {
++        /* Transfer data to card */
++        ret = sdio_writesb(card->func, priv->uap_dev.ioport, buf,
++                           buf_block_len * blksz);
++        if (ret < 0) {
++            i++;
++            PRINTM(ERROR, "host_to_card, write iomem (%d) failed: %d\n", i,
++                   ret);
++            ret = UAP_STATUS_FAILURE;
++            if (i > MAX_WRITE_IOMEM_RETRY)
++                goto exit;
++        } else {
++            HEXDUMP("SDIO Blk Wr", payload, nb);
++        }
++    } while (ret == UAP_STATUS_FAILURE);
++  exit:
++    sdio_release_host(card->func);
++#ifdef PXA3XX_DMA_ALIGN
++    if (tmpbuf)
++        kfree(tmpbuf);
++#endif
++    if (ret == UAP_STATUS_FAILURE) {
++        priv->uap_dev.cmd_sent = FALSE;
++        priv->uap_dev.data_sent = FALSE;
++    }
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function reads CIS information.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param cisinfo A pointer to CIS information output buffer
++ *  @param cislen  A pointer to length of CIS info output buffer
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++#if 0
++static int
++sbi_get_cis_info(uap_private * priv, void *cisinfo, int *cislen)
++{
++#define CIS_PTR (0x8000)
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++    unsigned int i, cis_ptr = CIS_PTR;
++    int ret = UAP_STATUS_FAILURE;
++
++    ENTER();
++
++    if (!card || !card->func) {
++        PRINTM(ERROR, "sbi_get_cis_info(): card or function is NULL!\n");
++        goto exit;
++    }
++#define MAX_SDIO_CIS_INFO_LEN (256)
++    if (!cisinfo || (*cislen < MAX_SDIO_CIS_INFO_LEN)) {
++        PRINTM(WARN, "ERROR! get_cis_info: insufficient buffer passed\n");
++        goto exit;
++    }
++
++    *cislen = MAX_SDIO_CIS_INFO_LEN;
++
++    sdio_claim_host(card->func);
++
++    PRINTM(INFO, "cis_ptr=%#x\n", cis_ptr);
++
++    /* Read the Tuple Data */
++    for (i = 0; i < *cislen; i++) {
++        ((unsigned char *) cisinfo)[i] =
++            sdio_readb(card->func, cis_ptr + i, &ret);
++        if (ret) {
++            PRINTM(WARN, "get_cis_info error: ret=%d\n", ret);
++            ret = UAP_STATUS_FAILURE;
++            goto done;
++        }
++        PRINTM(INFO, "cisinfo[%d]=%#x\n", i, ((unsigned char *) cisinfo)[i]);
++    }
++
++  done:
++    sdio_release_host(card->func);
++  exit:
++    LEAVE();
++    return ret;
++}
++#endif
++/**
++ *  @brief This function downloads helper image to the card.
++ *
++ *  @param priv       A pointer to uap_private structure
++ *  @return           UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++sbi_prog_helper(uap_private * priv)
++{
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++    u8 *helper = NULL;
++    int helperlen;
++    int ret = UAP_STATUS_SUCCESS;
++    void *tmphlprbuf = NULL;
++    int tmphlprbufsz;
++    u8 *hlprbuf;
++    int hlprblknow;
++    u32 tx_len;
++#ifdef FW_DOWNLOAD_SPEED
++    u32 tv1, tv2;
++#endif
++
++    ENTER();
++
++    if (!card || !card->func) {
++        PRINTM(ERROR, "sbi_prog_helper(): card or function is NULL!\n");
++        goto done;
++    }
++
++    if (priv->fw_helper) {
++        helper = (u8 *) priv->fw_helper->data;
++        helperlen = priv->fw_helper->size;
++    } else {
++        PRINTM(MSG, "No helper image found! Terminating download.\n");
++        LEAVE();
++        return UAP_STATUS_FAILURE;
++    }
++
++    PRINTM(INFO, "Downloading helper image (%d bytes), block size %d bytes\n",
++           helperlen, SD_BLOCK_SIZE);
++
++#ifdef FW_DOWNLOAD_SPEED
++    tv1 = get_utimeofday();
++#endif
++
++#ifdef PXA3XX_DMA_ALIGN
++    tmphlprbufsz = ALIGN_SZ(UAP_UPLD_SIZE, PXA3XX_DMA_ALIGNMENT);
++#else /* !PXA3XX_DMA_ALIGN */
++    tmphlprbufsz = UAP_UPLD_SIZE;
++#endif /* !PXA3XX_DMA_ALIGN */
++    tmphlprbuf = kmalloc(tmphlprbufsz, GFP_KERNEL);
++    if (!tmphlprbuf) {
++        PRINTM(ERROR,
++               "Unable to allocate buffer for helper. Terminating download\n");
++        ret = UAP_STATUS_FAILURE;
++        goto done;
++    }
++    memset(tmphlprbuf, 0, tmphlprbufsz);
++#ifdef PXA3XX_DMA_ALIGN
++    hlprbuf = (u8 *) ALIGN_ADDR(tmphlprbuf, PXA3XX_DMA_ALIGNMENT);
++#else /* !PXA3XX_DMA_ALIGN */
++    hlprbuf = (u8 *) tmphlprbuf;
++#endif /* !PXA3XX_DMA_ALIGN */
++
++    sdio_claim_host(card->func);
++
++    /* Perform helper data transfer */
++    tx_len = (FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE) - INTF_HEADER_LEN;
++    hlprblknow = 0;
++    do {
++        /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */
++        ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY);
++        if (ret < 0) {
++            PRINTM(FATAL, "Helper download poll status timeout @ %d\n",
++                   hlprblknow);
++            goto done;
++        }
++
++        /* More data? */
++        if (hlprblknow >= helperlen)
++            break;
++
++        /* Set blocksize to transfer - checking for last block */
++        if (helperlen - hlprblknow < tx_len)
++            tx_len = helperlen - hlprblknow;
++
++        /* Set length to the 4-byte header */
++        *(u32 *) hlprbuf = uap_cpu_to_le32(tx_len);
++
++        /* Copy payload to buffer */
++        memcpy(&hlprbuf[INTF_HEADER_LEN], &helper[hlprblknow], tx_len);
++
++        PRINTM(INFO, ".");
++
++        /* Send data */
++        ret = sdio_writesb(card->func, priv->uap_dev.ioport,
++                           hlprbuf, FIRMWARE_TRANSFER_NBLOCK * SD_BLOCK_SIZE);
++
++        if (ret < 0) {
++            PRINTM(FATAL, "IO error during helper download @ %d\n", hlprblknow);
++            goto done;
++        }
++
++        hlprblknow += tx_len;
++    } while (TRUE);
++
++#ifdef FW_DOWNLOAD_SPEED
++    tv2 = get_utimeofday();
++    PRINTM(INFO, "helper: %ld.%03ld.%03ld ", tv1 / 1000000,
++           (tv1 % 1000000) / 1000, tv1 % 1000);
++    PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000, (tv2 % 1000000) / 1000,
++           tv2 % 1000);
++    tv2 -= tv1;
++    PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000, (tv2 % 1000000) / 1000,
++           tv2 % 1000);
++#endif
++
++    /* Write last EOF data */
++    PRINTM(INFO, "\nTransferring helper image EOF block\n");
++    memset(hlprbuf, 0x0, SD_BLOCK_SIZE);
++    ret = sdio_writesb(card->func, priv->uap_dev.ioport,
++                       hlprbuf, SD_BLOCK_SIZE);
++
++    if (ret < 0) {
++        PRINTM(FATAL, "IO error in writing helper image EOF block\n");
++        goto done;
++    }
++
++    ret = UAP_STATUS_SUCCESS;
++
++  done:
++    sdio_release_host(card->func);
++    if (tmphlprbuf)
++        kfree(tmphlprbuf);
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function downloads firmware image to the card.
++ *
++ *  @param priv       A pointer to uap_private structure
++ *  @return           UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++sbi_prog_fw_w_helper(uap_private * priv)
++{
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++    u8 *firmware = NULL;
++    int firmwarelen;
++    u8 base0;
++    u8 base1;
++    int ret = UAP_STATUS_SUCCESS;
++    int offset;
++    void *tmpfwbuf = NULL;
++    int tmpfwbufsz;
++    u8 *fwbuf;
++    u16 len;
++    int txlen = 0;
++    int tx_blocks = 0;
++    int i = 0;
++    int tries = 0;
++#ifdef FW_DOWNLOAD_SPEED
++    u32 tv1, tv2;
++#endif
++
++    ENTER();
++
++    if (!card || !card->func) {
++        PRINTM(ERROR, "sbi_prog_fw_w_helper(): card or function is NULL!\n");
++        goto done;
++    }
++
++    if (priv->firmware) {
++        firmware = (u8 *) priv->firmware->data;
++        firmwarelen = priv->firmware->size;
++    } else {
++        PRINTM(MSG, "No firmware image found! Terminating download.\n");
++        LEAVE();
++        return UAP_STATUS_FAILURE;
++    }
++
++    PRINTM(INFO, "Downloading FW image (%d bytes)\n", firmwarelen);
++
++#ifdef FW_DOWNLOAD_SPEED
++    tv1 = get_utimeofday();
++#endif
++
++#ifdef PXA3XX_DMA_ALIGN
++    tmpfwbufsz = ALIGN_SZ(UAP_UPLD_SIZE, PXA3XX_DMA_ALIGNMENT);
++#else /* PXA3XX_DMA_ALIGN */
++    tmpfwbufsz = UAP_UPLD_SIZE;
++#endif /* PXA3XX_DMA_ALIGN */
++    tmpfwbuf = kmalloc(tmpfwbufsz, GFP_KERNEL);
++    if (!tmpfwbuf) {
++        PRINTM(ERROR,
++               "Unable to allocate buffer for firmware. Terminating download.\n");
++        ret = UAP_STATUS_FAILURE;
++        goto done;
++    }
++    memset(tmpfwbuf, 0, tmpfwbufsz);
++#ifdef PXA3XX_DMA_ALIGN
++    /* Ensure 8-byte aligned firmware buffer */
++    fwbuf = (u8 *) ALIGN_ADDR(tmpfwbuf, PXA3XX_DMA_ALIGNMENT);
++#else /* PXA3XX_DMA_ALIGN */
++    fwbuf = (u8 *) tmpfwbuf;
++#endif /* PXA3XX_DMA_ALIGN */
++
++    sdio_claim_host(card->func);
++
++    /* Perform firmware data transfer */
++    offset = 0;
++    do {
++        /* The host polls for the DN_LD_CARD_RDY and CARD_IO_READY bits */
++        ret = mv_sdio_poll_card_status(priv, CARD_IO_READY | DN_LD_CARD_RDY);
++        if (ret < 0) {
++            PRINTM(FATAL, "FW download with helper poll status timeout @ %d\n",
++                   offset);
++            goto done;
++        }
++
++        /* More data? */
++        if (offset >= firmwarelen)
++            break;
++
++        for (tries = 0; tries < MAX_POLL_TRIES; tries++) {
++            if ((ret = sbi_read_ioreg(priv, HOST_F1_RD_BASE_0, &base0)) < 0) {
++                PRINTM(WARN, "Dev BASE0 register read failed:"
++                       " base0=0x%04X(%d). Terminating download.\n", base0,
++                       base0);
++                ret = UAP_STATUS_FAILURE;
++                goto done;
++            }
++            if ((ret = sbi_read_ioreg(priv, HOST_F1_RD_BASE_1, &base1)) < 0) {
++                PRINTM(WARN, "Dev BASE1 register read failed:"
++                       " base1=0x%04X(%d). Terminating download.\n", base1,
++                       base1);
++                ret = UAP_STATUS_FAILURE;
++                goto done;
++            }
++            len = (((u16) base1) << 8) | base0;
++
++            /* For SD8688 wait until the length is not 0, 1 or 2 before
++               downloading the first FW block, since BOOT code writes the
++               register to indicate the helper/FW download winner, the value
++               could be 1 or 2 (Func1 or Func2). */
++            if ((len && offset) || (len > 2))
++                break;
++            udelay(10);
++        }
++
++        if (len == 0)
++            break;
++        else if (len > UAP_UPLD_SIZE) {
++            PRINTM(FATAL, "FW download failure @ %d, invalid length %d\n",
++                   offset, len);
++            ret = UAP_STATUS_FAILURE;
++            goto done;
++        }
++
++        txlen = len;
++
++        if (len & BIT(0)) {
++            i++;
++            if (i > MAX_WRITE_IOMEM_RETRY) {
++                PRINTM(FATAL,
++                       "FW download failure @ %d, over max retry count\n",
++                       offset);
++                ret = UAP_STATUS_FAILURE;
++                goto done;
++            }
++            PRINTM(ERROR, "FW CRC error indicated by the helper:"
++                   " len = 0x%04X, txlen = %d\n", len, txlen);
++            len &= ~BIT(0);
++            /* Setting this to 0 to resend from same offset */
++            txlen = 0;
++        } else {
++            i = 0;
++
++            /* Set blocksize to transfer - checking for last block */
++            if (firmwarelen - offset < txlen) {
++                txlen = firmwarelen - offset;
++            }
++            PRINTM(INFO, ".");
++
++            tx_blocks = (txlen + SD_BLOCK_SIZE - 1) / SD_BLOCK_SIZE;
++
++            /* Copy payload to buffer */
++            memcpy(fwbuf, &firmware[offset], txlen);
++        }
++
++        /* Send data */
++        ret = sdio_writesb(card->func, priv->uap_dev.ioport,
++                           fwbuf, tx_blocks * SD_BLOCK_SIZE);
++
++        if (ret < 0) {
++            PRINTM(ERROR, "FW download, write iomem (%d) failed @ %d\n", i,
++                   offset);
++            if (sbi_write_ioreg(priv, CONFIGURATION_REG, 0x04) < 0) {
++                PRINTM(ERROR, "write ioreg failed (CFG)\n");
++            }
++        }
++
++        offset += txlen;
++    } while (TRUE);
++
++    PRINTM(INFO, "\nFW download over, size %d bytes\n", offset);
++
++    ret = UAP_STATUS_SUCCESS;
++  done:
++#ifdef FW_DOWNLOAD_SPEED
++    tv2 = get_utimeofday();
++    PRINTM(INFO, "FW: %ld.%03ld.%03ld ", tv1 / 1000000,
++           (tv1 % 1000000) / 1000, tv1 % 1000);
++    PRINTM(INFO, " -> %ld.%03ld.%03ld ", tv2 / 1000000,
++           (tv2 % 1000000) / 1000, tv2 % 1000);
++    tv2 -= tv1;
++    PRINTM(INFO, " == %ld.%03ld.%03ld\n", tv2 / 1000000,
++           (tv2 % 1000000) / 1000, tv2 % 1000);
++#endif
++    sdio_release_host(card->func);
++    if (tmpfwbuf)
++        kfree(tmpfwbuf);
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function checks if the firmware is ready to accept
++ *  command or not.
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param pollnum Poll number
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++sbi_check_fw_status(uap_private * priv, int pollnum)
++{
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++    int ret = UAP_STATUS_SUCCESS;
++    u16 firmwarestat;
++    int tries;
++
++    ENTER();
++
++    sdio_claim_host(card->func);
++
++    /* Wait for firmware initialization event */
++    for (tries = 0; tries < pollnum; tries++) {
++        if ((ret = sd_read_firmware_status(priv, &firmwarestat)) < 0)
++            continue;
++        if (firmwarestat == FIRMWARE_READY) {
++            ret = UAP_STATUS_SUCCESS;
++            break;
++        } else {
++            mdelay(10);
++            ret = UAP_STATUS_FAILURE;
++        }
++    }
++
++    if (ret < 0)
++        goto done;
++
++    ret = UAP_STATUS_SUCCESS;
++    sd_get_rx_unit(priv);
++
++  done:
++    sdio_release_host(card->func);
++
++    LEAVE();
++    return ret;
++}
++
++/**
++ *  @brief This function set bus clock on/off
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @param option    TRUE--on , FALSE--off
++ *  @return      UAP_STATUS_SUCCESS
++ */
++#if 0
++static int
++sbi_set_bus_clock(uap_private * priv, u8 option)
++{
++    ENTER();
++    LEAVE();
++    return UAP_STATUS_SUCCESS;
++}
++#endif
++
++/**
++ *  @brief This function wakeup firmware
++ *
++ *  @param priv    A pointer to uap_private structure
++ *  @return      UAP_STATUS_SUCCESS or UAP_STATUS_FAILURE
++ */
++int
++sbi_wakeup_firmware(uap_private * priv)
++{
++    struct sdio_mmc_card *card = priv->uap_dev.card;
++    int ret = UAP_STATUS_SUCCESS;
++
++    ENTER();
++
++    if (!card || !card->func) {
++        PRINTM(ERROR, "card or function is NULL!\n");
++        LEAVE();
++        return UAP_STATUS_FAILURE;
++    }
++    sdio_claim_host(card->func);
++    sdio_writeb(card->func, HOST_POWER_UP, CONFIGURATION_REG, &ret);
++    sdio_release_host(card->func);
++    LEAVE();
++    return ret;
++}
+diff --git a/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h b/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h
+new file mode 100644
+index 0000000..191c67f
+--- /dev/null
++++ b/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h
+@@ -0,0 +1,136 @@
++/** @file uap_sdio_mmc.h
++ *  @brief This file contains SDIO IF (interface) module
++ *  related macros, enum, and structure.
++ *
++ * Copyright (C) 2007-2009, Marvell International Ltd.
++ *
++ * This software file (the "File") is distributed by Marvell International
++ * Ltd. under the terms of the GNU General Public License Version 2, June 1991
++ * (the "License").  You may use, redistribute and/or modify this File in
++ * accordance with the terms and conditions of the License, a copy of which
++ * is available along with the File in the gpl.txt file or by writing to
++ * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++ * 02111-1307 or on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
++ *
++ * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
++ * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
++ * this warranty disclaimer.
++ *
++ */
++/****************************************************
++Change log:
++      10/10/07: initial version
++****************************************************/
++
++#ifndef       _UAP_SDIO_MMC_H
++#define       _UAP_SDIO_MMC_H
++
++#include      <linux/mmc/sdio.h>
++#include      <linux/mmc/sdio_ids.h>
++#include      <linux/mmc/sdio_func.h>
++#include      <linux/mmc/card.h>
++
++#include      "uap_headers.h"
++
++/** The number of times to try when waiting for downloaded firmware to
++     become active. (polling the scratch register). */
++#define MAX_FIRMWARE_POLL_TRIES               100
++
++/** Firmware ready */
++#define FIRMWARE_READY                        0xfedc
++
++/** Number of firmware blocks to transfer */
++#define FIRMWARE_TRANSFER_NBLOCK      2
++
++/* Host Control Registers */
++/** Host Control Registers : I/O port 0 */
++#define IO_PORT_0_REG                 0x00
++/** Host Control Registers : I/O port 1 */
++#define IO_PORT_1_REG                 0x01
++/** Host Control Registers : I/O port 2 */
++#define IO_PORT_2_REG                 0x02
++
++/** Host Control Registers : Configuration */
++#define CONFIGURATION_REG             0x03
++/** Host Control Registers : Host without Command 53 finish host */
++#define HOST_WO_CMD53_FINISH_HOST     (0x1U << 2)
++/** Host Control Registers : Host power up */
++#define HOST_POWER_UP                 (0x1U << 1)
++/** Host Control Registers : Host power down */
++#define HOST_POWER_DOWN                       (0x1U << 0)
++
++/** Host Control Registers : Host interrupt mask */
++#define HOST_INT_MASK_REG             0x04
++/** Host Control Registers : Upload host interrupt mask */
++#define UP_LD_HOST_INT_MASK           (0x1U)
++/** Host Control Registers : Download host interrupt mask */
++#define DN_LD_HOST_INT_MASK           (0x2U)
++/** Enable Host interrupt mask */
++#define HIM_ENABLE                    (UP_LD_HOST_INT_MASK | DN_LD_HOST_INT_MASK)
++/** Disable Host interrupt mask */
++#define       HIM_DISABLE                     0xff
++
++/** Host Control Registers : Host interrupt status */
++#define HOST_INTSTATUS_REG            0x05
++/** Host Control Registers : Upload host interrupt status */
++#define UP_LD_HOST_INT_STATUS         (0x1U)
++/** Host Control Registers : Download host interrupt status */
++#define DN_LD_HOST_INT_STATUS         (0x2U)
++
++/** Host F1 read base 0 */
++#define HOST_F1_RD_BASE_0             0x10
++/** Host F1 read base 1 */
++#define HOST_F1_RD_BASE_1             0x11
++
++/** Card Control Registers : Card status register */
++#define CARD_STATUS_REG               0x20
++/** Card Control Registers : Card I/O ready */
++#define CARD_IO_READY                 (0x1U << 3)
++/** Card Control Registers : CIS card ready */
++#define CIS_CARD_RDY                  (0x1U << 2)
++/** Card Control Registers : Upload card ready */
++#define UP_LD_CARD_RDY                (0x1U << 1)
++/** Card Control Registers : Download card ready */
++#define DN_LD_CARD_RDY                (0x1U << 0)
++
++/** Card Control Registers : Card OCR 0 register */
++#define CARD_OCR_0_REG                0x34
++/** Card Control Registers : Card OCR 1 register */
++#define CARD_OCR_1_REG                0x35
++
++/** Firmware status 0 register */
++#define CARD_FW_STATUS0_REG           0x40
++/** Firmware status 1 register */
++#define CARD_FW_STATUS1_REG           0x41
++/** Rx length register */
++#define CARD_RX_LEN_REG                       0x42
++/** Rx unit register */
++#define CARD_RX_UNIT_REG              0x43
++
++/** Chip Id Register 0 */
++#define CARD_CHIP_ID_0_REG            0x801c
++/** Chip Id Register 1 */
++#define CARD_CHIP_ID_1_REG            0x801d
++
++#ifdef PXA3XX_DMA_ALIGN
++/** DMA alignment value for PXA3XX platforms */
++#define PXA3XX_DMA_ALIGNMENT    8
++/** Macros for Data Alignment : size */
++#define ALIGN_SZ(p, a)  \
++    (((p) + ((a) - 1)) & ~((a) - 1))
++
++/** Macros for Data Alignment : address */
++#define ALIGN_ADDR(p, a)    \
++    ((((u32)(p)) + (((u32)(a)) - 1)) & ~(((u32)(a)) - 1))
++#endif /* PXA3XX_DMA_ALIGN */
++
++struct sdio_mmc_card
++{
++        /** sdio_func structure pointer */
++    struct sdio_func *func;
++        /** uap_private structure pointer */
++    uap_private *priv;
++};
++
++#endif /* _UAP_SDIO_MMC_H */
diff --git a/src/patches/ppp/0003-build-sys-utilize-compiler-flags-handed-to-us-by-rpm.patch b/src/patches/ppp/0003-build-sys-utilize-compiler-flags-handed-to-us-by-rpm.patch
new file mode 100644 (file)
index 0000000..4a43d44
--- /dev/null
@@ -0,0 +1,121 @@
+From d729b06f0ac7a5ebd3648ef60bef0499b59bf82d Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta@redhat.com>
+Date: Fri, 4 Apr 2014 11:29:39 +0200
+Subject: [PATCH 03/25] build-sys: utilize compiler flags handed to us by
+ rpmbuild
+
+---
+ chat/Makefile.linux                  | 2 +-
+ pppd/Makefile.linux                  | 3 +--
+ pppd/plugins/Makefile.linux          | 2 +-
+ pppd/plugins/pppoatm/Makefile.linux  | 2 +-
+ pppd/plugins/radius/Makefile.linux   | 2 +-
+ pppd/plugins/rp-pppoe/Makefile.linux | 2 +-
+ pppdump/Makefile.linux               | 2 +-
+ pppstats/Makefile.linux              | 2 +-
+ 8 files changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/chat/Makefile.linux b/chat/Makefile.linux
+index 1065ac5..848cd8d 100644
+--- a/chat/Makefile.linux
++++ b/chat/Makefile.linux
+@@ -10,7 +10,7 @@ CDEF3=       -UNO_SLEEP                      # Use the usleep function
+ CDEF4=        -DFNDELAY=O_NDELAY              # Old name value
+ CDEFS=        $(CDEF1) $(CDEF2) $(CDEF3) $(CDEF4)
+-COPTS=        -O2 -g -pipe
++COPTS=        $(RPM_OPT_FLAGS)
+ CFLAGS=       $(COPTS) $(CDEFS)
+ INSTALL= install
+diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
+index 5a44d30..63872eb 100644
+--- a/pppd/Makefile.linux
++++ b/pppd/Makefile.linux
+@@ -32,8 +32,7 @@ endif
+ CC = gcc
+ #
+-COPTS = -O2 -pipe -Wall -g
+-LIBS =
++COPTS = -Wall $(RPM_OPT_FLAGS)
+ # Uncomment the next 2 lines to include support for Microsoft's
+ # MS-CHAP authentication protocol.  Also, edit plugins/radius/Makefile.linux.
+diff --git a/pppd/plugins/Makefile.linux b/pppd/plugins/Makefile.linux
+index 0a7ec7b..e09a369 100644
+--- a/pppd/plugins/Makefile.linux
++++ b/pppd/plugins/Makefile.linux
+@@ -1,5 +1,5 @@
+ #CC   = gcc
+-COPTS = -O2 -g
++COPTS = $(RPM_OPT_FLAGS)
+ CFLAGS        = $(COPTS) -I.. -I../../include -fPIC
+ LDFLAGS       = -shared
+ INSTALL       = install
+diff --git a/pppd/plugins/pppoatm/Makefile.linux b/pppd/plugins/pppoatm/Makefile.linux
+index 20f62e6..5a81447 100644
+--- a/pppd/plugins/pppoatm/Makefile.linux
++++ b/pppd/plugins/pppoatm/Makefile.linux
+@@ -1,5 +1,5 @@
+ #CC   = gcc
+-COPTS = -O2 -g
++COPTS = $(RPM_OPT_FLAGS)
+ CFLAGS        = $(COPTS) -I../.. -I../../../include -fPIC
+ LDFLAGS       = -shared
+ INSTALL       = install
+diff --git a/pppd/plugins/radius/Makefile.linux b/pppd/plugins/radius/Makefile.linux
+index 24ed3e5..45b3b8d 100644
+--- a/pppd/plugins/radius/Makefile.linux
++++ b/pppd/plugins/radius/Makefile.linux
+@@ -12,7 +12,7 @@ VERSION = $(shell awk -F '"' '/VERSION/ { print $$2; }' ../../patchlevel.h)
+ INSTALL       = install
+ PLUGIN=radius.so radattr.so radrealms.so
+-CFLAGS=-I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON
++CFLAGS=-I. -I../.. -I../../../include $(RPM_OPT_FLAGS) -DRC_LOG_FACILITY=LOG_DAEMON
+ # Uncomment the next line to include support for Microsoft's
+ # MS-CHAP authentication protocol.
+diff --git a/pppd/plugins/rp-pppoe/Makefile.linux b/pppd/plugins/rp-pppoe/Makefile.linux
+index 5d7a271..352991a 100644
+--- a/pppd/plugins/rp-pppoe/Makefile.linux
++++ b/pppd/plugins/rp-pppoe/Makefile.linux
+@@ -25,7 +25,7 @@ INSTALL      = install
+ # Version is set ONLY IN THE MAKEFILE!  Don't delete this!
+ RP_VERSION=3.8p
+-COPTS=-O2 -g
++COPTS=$(RPM_OPT_FLAGS)
+ CFLAGS=$(COPTS) -I../../../include '-DRP_VERSION="$(RP_VERSION)"'
+ all: rp-pppoe.so pppoe-discovery
+diff --git a/pppdump/Makefile.linux b/pppdump/Makefile.linux
+index ac028f6..d0a5032 100644
+--- a/pppdump/Makefile.linux
++++ b/pppdump/Makefile.linux
+@@ -2,7 +2,7 @@ DESTDIR = $(INSTROOT)@DESTDIR@
+ BINDIR = $(DESTDIR)/sbin
+ MANDIR = $(DESTDIR)/share/man/man8
+-CFLAGS= -O -I../include/net
++CFLAGS= $(RPM_OPT_FLAGS) -I../include/net
+ OBJS = pppdump.o bsd-comp.o deflate.o zlib.o
+ INSTALL= install
+diff --git a/pppstats/Makefile.linux b/pppstats/Makefile.linux
+index cca6f0f..42aba73 100644
+--- a/pppstats/Makefile.linux
++++ b/pppstats/Makefile.linux
+@@ -10,7 +10,7 @@ PPPSTATSRCS = pppstats.c
+ PPPSTATOBJS = pppstats.o
+ #CC = gcc
+-COPTS = -O
++COPTS = $(RPM_OPT_FLAGS)
+ COMPILE_FLAGS = -I../include
+ LIBS =
+-- 
+1.8.3.1
+
diff --git a/src/patches/ppp/0012-pppd-we-don-t-want-to-accidentally-leak-fds.patch b/src/patches/ppp/0012-pppd-we-don-t-want-to-accidentally-leak-fds.patch
new file mode 100644 (file)
index 0000000..90bb2d1
--- /dev/null
@@ -0,0 +1,143 @@
+From 82cd789df0f022eb6f3d28646e7a61d1d0715805 Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta@redhat.com>
+Date: Mon, 7 Apr 2014 12:23:36 +0200
+Subject: [PATCH 12/25] pppd: we don't want to accidentally leak fds
+
+---
+ pppd/auth.c      | 20 ++++++++++----------
+ pppd/options.c   |  2 +-
+ pppd/sys-linux.c |  4 ++--
+ 3 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/pppd/auth.c b/pppd/auth.c
+index 4271af6..9e957fa 100644
+--- a/pppd/auth.c
++++ b/pppd/auth.c
+@@ -428,7 +428,7 @@ setupapfile(argv)
+       option_error("unable to reset uid before opening %s: %m", fname);
+       return 0;
+     }
+-    ufile = fopen(fname, "r");
++    ufile = fopen(fname, "re");
+     if (seteuid(euid) == -1)
+       fatal("unable to regain privileges: %m");
+     if (ufile == NULL) {
+@@ -1413,7 +1413,7 @@ check_passwd(unit, auser, userlen, apasswd, passwdlen, msg)
+     filename = _PATH_UPAPFILE;
+     addrs = opts = NULL;
+     ret = UPAP_AUTHNAK;
+-    f = fopen(filename, "r");
++    f = fopen(filename, "re");
+     if (f == NULL) {
+       error("Can't open PAP password file %s: %m", filename);
+@@ -1512,7 +1512,7 @@ null_login(unit)
+     if (ret <= 0) {
+       filename = _PATH_UPAPFILE;
+       addrs = NULL;
+-      f = fopen(filename, "r");
++      f = fopen(filename, "re");
+       if (f == NULL)
+           return 0;
+       check_access(f, filename);
+@@ -1559,7 +1559,7 @@ get_pap_passwd(passwd)
+     }
+     filename = _PATH_UPAPFILE;
+-    f = fopen(filename, "r");
++    f = fopen(filename, "re");
+     if (f == NULL)
+       return 0;
+     check_access(f, filename);
+@@ -1597,7 +1597,7 @@ have_pap_secret(lacks_ipp)
+     }
+     filename = _PATH_UPAPFILE;
+-    f = fopen(filename, "r");
++    f = fopen(filename, "re");
+     if (f == NULL)
+       return 0;
+@@ -1642,7 +1642,7 @@ have_chap_secret(client, server, need_ip, lacks_ipp)
+     }
+     filename = _PATH_CHAPFILE;
+-    f = fopen(filename, "r");
++    f = fopen(filename, "re");
+     if (f == NULL)
+       return 0;
+@@ -1684,7 +1684,7 @@ have_srp_secret(client, server, need_ip, lacks_ipp)
+     struct wordlist *addrs;
+     filename = _PATH_SRPFILE;
+-    f = fopen(filename, "r");
++    f = fopen(filename, "re");
+     if (f == NULL)
+       return 0;
+@@ -1740,7 +1740,7 @@ get_secret(unit, client, server, secret, secret_len, am_server)
+       addrs = NULL;
+       secbuf[0] = 0;
+-      f = fopen(filename, "r");
++      f = fopen(filename, "re");
+       if (f == NULL) {
+           error("Can't open chap secret file %s: %m", filename);
+           return 0;
+@@ -1797,7 +1797,7 @@ get_srp_secret(unit, client, server, secret, am_server)
+       filename = _PATH_SRPFILE;
+       addrs = NULL;
+-      fp = fopen(filename, "r");
++      fp = fopen(filename, "re");
+       if (fp == NULL) {
+           error("Can't open srp secret file %s: %m", filename);
+           return 0;
+@@ -2203,7 +2203,7 @@ scan_authfile(f, client, server, secret, addrs, opts, filename, flags)
+            */
+           if (word[0] == '@' && word[1] == '/') {
+               strlcpy(atfile, word+1, sizeof(atfile));
+-              if ((sf = fopen(atfile, "r")) == NULL) {
++              if ((sf = fopen(atfile, "re")) == NULL) {
+                   warn("can't open indirect secret file %s", atfile);
+                   continue;
+               }
+diff --git a/pppd/options.c b/pppd/options.c
+index 45fa742..1d754ae 100644
+--- a/pppd/options.c
++++ b/pppd/options.c
+@@ -427,7 +427,7 @@ options_from_file(filename, must_exist, check_prot, priv)
+       option_error("unable to drop privileges to open %s: %m", filename);
+       return 0;
+     }
+-    f = fopen(filename, "r");
++    f = fopen(filename, "re");
+     err = errno;
+     if (check_prot && seteuid(euid) == -1)
+       fatal("unable to regain privileges");
+diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
+index 72a7727..8a12fa0 100644
+--- a/pppd/sys-linux.c
++++ b/pppd/sys-linux.c
+@@ -1412,7 +1412,7 @@ static char *path_to_procfs(const char *tail)
+       /* Default the mount location of /proc */
+       strlcpy (proc_path, "/proc", sizeof(proc_path));
+       proc_path_len = 5;
+-      fp = fopen(MOUNTED, "r");
++      fp = fopen(MOUNTED, "re");
+       if (fp != NULL) {
+           while ((mntent = getmntent(fp)) != NULL) {
+               if (strcmp(mntent->mnt_type, MNTTYPE_IGNORE) == 0)
+@@ -1472,7 +1472,7 @@ static int open_route_table (void)
+     close_route_table();
+     path = path_to_procfs("/net/route");
+-    route_fd = fopen (path, "r");
++    route_fd = fopen (path, "re");
+     if (route_fd == NULL) {
+       error("can't open routing table %s: %m", path);
+       return 0;
+-- 
+1.8.3.1
+
diff --git a/src/patches/ppp/0013-everywhere-O_CLOEXEC-harder.patch b/src/patches/ppp/0013-everywhere-O_CLOEXEC-harder.patch
new file mode 100644 (file)
index 0000000..e3608a0
--- /dev/null
@@ -0,0 +1,241 @@
+From 302c1b736cb656c7885a0cba270fd953a672d8a8 Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta@redhat.com>
+Date: Mon, 7 Apr 2014 13:56:34 +0200
+Subject: [PATCH 13/25] everywhere: O_CLOEXEC harder
+
+---
+ pppd/eap.c       |  2 +-
+ pppd/main.c      |  4 ++--
+ pppd/options.c   |  4 ++--
+ pppd/sys-linux.c | 22 +++++++++++-----------
+ pppd/tdb.c       |  4 ++--
+ pppd/tty.c       |  4 ++--
+ pppd/utils.c     |  6 +++---
+ 7 files changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/pppd/eap.c b/pppd/eap.c
+index 6ea6c1f..faced53 100644
+--- a/pppd/eap.c
++++ b/pppd/eap.c
+@@ -1226,7 +1226,7 @@ mode_t modebits;
+       if ((path = name_of_pn_file()) == NULL)
+               return (-1);
+-      fd = open(path, modebits, S_IRUSR | S_IWUSR);
++      fd = open(path, modebits, S_IRUSR | S_IWUSR | O_CLOEXEC);
+       err = errno;
+       free(path);
+       errno = err;
+diff --git a/pppd/main.c b/pppd/main.c
+index 6d50d1b..4880377 100644
+--- a/pppd/main.c
++++ b/pppd/main.c
+@@ -420,7 +420,7 @@ main(argc, argv)
+       die(0);
+     /* Make sure fds 0, 1, 2 are open to somewhere. */
+-    fd_devnull = open(_PATH_DEVNULL, O_RDWR);
++    fd_devnull = open(_PATH_DEVNULL, O_RDWR | O_CLOEXEC);
+     if (fd_devnull < 0)
+       fatal("Couldn't open %s: %m", _PATH_DEVNULL);
+     while (fd_devnull <= 2) {
+@@ -1679,7 +1679,7 @@ device_script(program, in, out, dont_wait)
+     if (log_to_fd >= 0)
+       errfd = log_to_fd;
+     else
+-      errfd = open(_PATH_CONNERRS, O_WRONLY | O_APPEND | O_CREAT, 0600);
++      errfd = open(_PATH_CONNERRS, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC, 0600);
+     ++conn_running;
+     pid = safe_fork(in, out, errfd);
+diff --git a/pppd/options.c b/pppd/options.c
+index 1d754ae..8e62635 100644
+--- a/pppd/options.c
++++ b/pppd/options.c
+@@ -1544,9 +1544,9 @@ setlogfile(argv)
+       option_error("unable to drop permissions to open %s: %m", *argv);
+       return 0;
+     }
+-    fd = open(*argv, O_WRONLY | O_APPEND | O_CREAT | O_EXCL, 0644);
++    fd = open(*argv, O_WRONLY | O_APPEND | O_CREAT | O_EXCL | O_CLOEXEC, 0644);
+     if (fd < 0 && errno == EEXIST)
+-      fd = open(*argv, O_WRONLY | O_APPEND);
++      fd = open(*argv, O_WRONLY | O_APPEND | O_CLOEXEC);
+     err = errno;
+     if (!privileged_option && seteuid(euid) == -1)
+       fatal("unable to regain privileges: %m");
+diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
+index 8a12fa0..00a2cf5 100644
+--- a/pppd/sys-linux.c
++++ b/pppd/sys-linux.c
+@@ -459,7 +459,7 @@ int generic_establish_ppp (int fd)
+           goto err;
+       }
+       dbglog("using channel %d", chindex);
+-      fd = open("/dev/ppp", O_RDWR);
++      fd = open("/dev/ppp", O_RDWR | O_CLOEXEC);
+       if (fd < 0) {
+           error("Couldn't reopen /dev/ppp: %m");
+           goto err;
+@@ -619,7 +619,7 @@ static int make_ppp_unit()
+               dbglog("in make_ppp_unit, already had /dev/ppp open?");
+               close(ppp_dev_fd);
+       }
+-      ppp_dev_fd = open("/dev/ppp", O_RDWR);
++      ppp_dev_fd = open("/dev/ppp", O_RDWR | O_CLOEXEC);
+       if (ppp_dev_fd < 0)
+               fatal("Couldn't open /dev/ppp: %m");
+       flags = fcntl(ppp_dev_fd, F_GETFL);
+@@ -693,7 +693,7 @@ int bundle_attach(int ifnum)
+       if (!new_style_driver)
+               return -1;
+-      master_fd = open("/dev/ppp", O_RDWR);
++      master_fd = open("/dev/ppp", O_RDWR | O_CLOEXEC);
+       if (master_fd < 0)
+               fatal("Couldn't open /dev/ppp: %m");
+       if (ioctl(master_fd, PPPIOCATTACH, &ifnum) < 0) {
+@@ -1715,7 +1715,7 @@ int sifproxyarp (int unit, u_int32_t his_adr)
+       if (tune_kernel) {
+           forw_path = path_to_procfs("/sys/net/ipv4/ip_forward");
+           if (forw_path != 0) {
+-              int fd = open(forw_path, O_WRONLY);
++              int fd = open(forw_path, O_WRONLY | O_CLOEXEC);
+               if (fd >= 0) {
+                   if (write(fd, "1", 1) != 1)
+                       error("Couldn't enable IP forwarding: %m");
+@@ -2030,7 +2030,7 @@ int ppp_available(void)
+     sscanf(utsname.release, "%d.%d.%d", &osmaj, &osmin, &ospatch);
+     kernel_version = KVERSION(osmaj, osmin, ospatch);
+-    fd = open("/dev/ppp", O_RDWR);
++    fd = open("/dev/ppp", O_RDWR | O_CLOEXEC);
+     if (fd >= 0) {
+       new_style_driver = 1;
+@@ -2208,7 +2208,7 @@ void logwtmp (const char *line, const char *name, const char *host)
+ #if __GLIBC__ >= 2
+     updwtmp(_PATH_WTMP, &ut);
+ #else
+-    wtmp = open(_PATH_WTMP, O_APPEND|O_WRONLY);
++    wtmp = open(_PATH_WTMP, O_APPEND|O_WRONLY|O_CLOEXEC);
+     if (wtmp >= 0) {
+       flock(wtmp, LOCK_EX);
+@@ -2394,7 +2394,7 @@ int sifaddr (int unit, u_int32_t our_adr, u_int32_t his_adr,
+       int fd;
+       path = path_to_procfs("/sys/net/ipv4/ip_dynaddr");
+-      if (path != 0 && (fd = open(path, O_WRONLY)) >= 0) {
++      if (path != 0 && (fd = open(path, O_WRONLY | O_CLOEXEC)) >= 0) {
+           if (write(fd, "1", 1) != 1)
+               error("Couldn't enable dynamic IP addressing: %m");
+           close(fd);
+@@ -2570,7 +2570,7 @@ get_pty(master_fdp, slave_fdp, slave_name, uid)
+     /*
+      * Try the unix98 way first.
+      */
+-    mfd = open("/dev/ptmx", O_RDWR);
++    mfd = open("/dev/ptmx", O_RDWR | O_CLOEXEC);
+     if (mfd >= 0) {
+       int ptn;
+       if (ioctl(mfd, TIOCGPTN, &ptn) >= 0) {
+@@ -2581,7 +2581,7 @@ get_pty(master_fdp, slave_fdp, slave_name, uid)
+           if (ioctl(mfd, TIOCSPTLCK, &ptn) < 0)
+               warn("Couldn't unlock pty slave %s: %m", pty_name);
+ #endif
+-          if ((sfd = open(pty_name, O_RDWR | O_NOCTTY)) < 0)
++          if ((sfd = open(pty_name, O_RDWR | O_NOCTTY | O_CLOEXEC)) < 0)
+               warn("Couldn't open pty slave %s: %m", pty_name);
+       }
+     }
+@@ -2592,10 +2592,10 @@ get_pty(master_fdp, slave_fdp, slave_name, uid)
+       for (i = 0; i < 64; ++i) {
+           slprintf(pty_name, sizeof(pty_name), "/dev/pty%c%x",
+                    'p' + i / 16, i % 16);
+-          mfd = open(pty_name, O_RDWR, 0);
++          mfd = open(pty_name, O_RDWR | O_CLOEXEC, 0);
+           if (mfd >= 0) {
+               pty_name[5] = 't';
+-              sfd = open(pty_name, O_RDWR | O_NOCTTY, 0);
++              sfd = open(pty_name, O_RDWR | O_NOCTTY | O_CLOEXEC, 0);
+               if (sfd >= 0) {
+                   fchown(sfd, uid, -1);
+                   fchmod(sfd, S_IRUSR | S_IWUSR);
+diff --git a/pppd/tdb.c b/pppd/tdb.c
+index bdc5828..c7ab71c 100644
+--- a/pppd/tdb.c
++++ b/pppd/tdb.c
+@@ -1724,7 +1724,7 @@ TDB_CONTEXT *tdb_open_ex(const char *name, int hash_size, int tdb_flags,
+               goto internal;
+       }
+-      if ((tdb->fd = open(name, open_flags, mode)) == -1) {
++      if ((tdb->fd = open(name, open_flags | O_CLOEXEC, mode)) == -1) {
+               TDB_LOG((tdb, 5, "tdb_open_ex: could not open file %s: %s\n",
+                        name, strerror(errno)));
+               goto fail;      /* errno set by open(2) */
+@@ -1967,7 +1967,7 @@ int tdb_reopen(TDB_CONTEXT *tdb)
+       }
+       if (close(tdb->fd) != 0)
+               TDB_LOG((tdb, 0, "tdb_reopen: WARNING closing tdb->fd failed!\n"));
+-      tdb->fd = open(tdb->name, tdb->open_flags & ~(O_CREAT|O_TRUNC), 0);
++      tdb->fd = open(tdb->name, (tdb->open_flags & ~(O_CREAT|O_TRUNC)) | O_CLOEXEC, 0);
+       if (tdb->fd == -1) {
+               TDB_LOG((tdb, 0, "tdb_reopen: open failed (%s)\n", strerror(errno)));
+               goto fail;
+diff --git a/pppd/tty.c b/pppd/tty.c
+index d571b11..bc96695 100644
+--- a/pppd/tty.c
++++ b/pppd/tty.c
+@@ -569,7 +569,7 @@ int connect_tty()
+                               status = EXIT_OPEN_FAILED;
+                               goto errret;
+                       }
+-                      real_ttyfd = open(devnam, O_NONBLOCK | O_RDWR, 0);
++                      real_ttyfd = open(devnam, O_NONBLOCK | O_RDWR | O_CLOEXEC, 0);
+                       err = errno;
+                       if (prio < OPRIO_ROOT && seteuid(0) == -1)
+                               fatal("Unable to regain privileges");
+@@ -723,7 +723,7 @@ int connect_tty()
+       if (connector == NULL && modem && devnam[0] != 0) {
+               int i;
+               for (;;) {
+-                      if ((i = open(devnam, O_RDWR)) >= 0)
++                      if ((i = open(devnam, O_RDWR | O_CLOEXEC)) >= 0)
+                               break;
+                       if (errno != EINTR) {
+                               error("Failed to reopen %s: %m", devnam);
+diff --git a/pppd/utils.c b/pppd/utils.c
+index 29bf970..6051b9a 100644
+--- a/pppd/utils.c
++++ b/pppd/utils.c
+@@ -918,14 +918,14 @@ lock(dev)
+     slprintf(lock_file, sizeof(lock_file), "%s/LCK..%s", LOCK_DIR, dev);
+ #endif
+-    while ((fd = open(lock_file, O_EXCL | O_CREAT | O_RDWR, 0644)) < 0) {
++    while ((fd = open(lock_file, O_EXCL | O_CREAT | O_RDWR | O_CLOEXEC, 0644)) < 0) {
+       if (errno != EEXIST) {
+           error("Can't create lock file %s: %m", lock_file);
+           break;
+       }
+       /* Read the lock file to find out who has the device locked. */
+-      fd = open(lock_file, O_RDONLY, 0);
++      fd = open(lock_file, O_RDONLY | O_CLOEXEC, 0);
+       if (fd < 0) {
+           if (errno == ENOENT) /* This is just a timing problem. */
+               continue;
+@@ -1004,7 +1004,7 @@ relock(pid)
+     if (lock_file[0] == 0)
+       return -1;
+-    fd = open(lock_file, O_WRONLY, 0);
++    fd = open(lock_file, O_WRONLY | O_CLOEXEC, 0);
+     if (fd < 0) {
+       error("Couldn't reopen lock file %s: %m", lock_file);
+       lock_file[0] = 0;
+-- 
+1.8.3.1
+
diff --git a/src/patches/ppp/0014-everywhere-use-SOCK_CLOEXEC-when-creating-socket.patch b/src/patches/ppp/0014-everywhere-use-SOCK_CLOEXEC-when-creating-socket.patch
new file mode 100644 (file)
index 0000000..3475f09
--- /dev/null
@@ -0,0 +1,174 @@
+From 2a97ab28ee00586e5f06b3ef3a0e43ea0c7c6499 Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta@redhat.com>
+Date: Mon, 7 Apr 2014 14:21:41 +0200
+Subject: [PATCH 14/25] everywhere: use SOCK_CLOEXEC when creating socket
+
+---
+ pppd/plugins/pppoatm/pppoatm.c          |  2 +-
+ pppd/plugins/pppol2tp/openl2tp.c        |  2 +-
+ pppd/plugins/pppol2tp/pppol2tp.c        |  2 +-
+ pppd/plugins/rp-pppoe/if.c              |  2 +-
+ pppd/plugins/rp-pppoe/plugin.c          |  6 +++---
+ pppd/plugins/rp-pppoe/pppoe-discovery.c |  2 +-
+ pppd/sys-linux.c                        | 10 +++++-----
+ pppd/tty.c                              |  2 +-
+ 8 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/pppd/plugins/pppoatm/pppoatm.c b/pppd/plugins/pppoatm/pppoatm.c
+index d693350..c31bb34 100644
+--- a/pppd/plugins/pppoatm/pppoatm.c
++++ b/pppd/plugins/pppoatm/pppoatm.c
+@@ -135,7 +135,7 @@ static int connect_pppoatm(void)
+       if (!device_got_set)
+               no_device_given_pppoatm();
+-      fd = socket(AF_ATMPVC, SOCK_DGRAM, 0);
++      fd = socket(AF_ATMPVC, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+       if (fd < 0)
+               fatal("failed to create socket: %m");
+       memset(&qos, 0, sizeof qos);
+diff --git a/pppd/plugins/pppol2tp/openl2tp.c b/pppd/plugins/pppol2tp/openl2tp.c
+index 9643b96..1099575 100644
+--- a/pppd/plugins/pppol2tp/openl2tp.c
++++ b/pppd/plugins/pppol2tp/openl2tp.c
+@@ -83,7 +83,7 @@ static int openl2tp_client_create(void)
+       int result;
+       if (openl2tp_fd < 0) {
+-              openl2tp_fd = socket(PF_UNIX, SOCK_DGRAM, 0);
++              openl2tp_fd = socket(PF_UNIX, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+               if (openl2tp_fd < 0) {
+                       error("openl2tp connection create: %m");
+                       return -ENOTCONN;
+diff --git a/pppd/plugins/pppol2tp/pppol2tp.c b/pppd/plugins/pppol2tp/pppol2tp.c
+index a7e3400..e64a778 100644
+--- a/pppd/plugins/pppol2tp/pppol2tp.c
++++ b/pppd/plugins/pppol2tp/pppol2tp.c
+@@ -208,7 +208,7 @@ static void send_config_pppol2tp(int mtu,
+               struct ifreq ifr;
+               int fd;
+-              fd = socket(AF_INET, SOCK_DGRAM, 0);
++              fd = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+               if (fd >= 0) {
+                       memset (&ifr, '\0', sizeof (ifr));
+                       strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
+diff --git a/pppd/plugins/rp-pppoe/if.c b/pppd/plugins/rp-pppoe/if.c
+index 91e9a57..72aba41 100644
+--- a/pppd/plugins/rp-pppoe/if.c
++++ b/pppd/plugins/rp-pppoe/if.c
+@@ -116,7 +116,7 @@ openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
+     stype = SOCK_PACKET;
+ #endif
+-    if ((fd = socket(domain, stype, htons(type))) < 0) {
++    if ((fd = socket(domain, stype | SOCK_CLOEXEC, htons(type))) < 0) {
+       /* Give a more helpful message for the common error case */
+       if (errno == EPERM) {
+           fatal("Cannot create raw socket -- pppoe must be run as root.");
+diff --git a/pppd/plugins/rp-pppoe/plugin.c b/pppd/plugins/rp-pppoe/plugin.c
+index a8c2bb4..24bdf8f 100644
+--- a/pppd/plugins/rp-pppoe/plugin.c
++++ b/pppd/plugins/rp-pppoe/plugin.c
+@@ -137,7 +137,7 @@ PPPOEConnectDevice(void)
+     /* server equipment).                                                  */
+     /* Opening this socket just before waitForPADS in the discovery()      */
+     /* function would be more appropriate, but it would mess-up the code   */
+-    conn->sessionSocket = socket(AF_PPPOX, SOCK_STREAM, PX_PROTO_OE);
++    conn->sessionSocket = socket(AF_PPPOX, SOCK_STREAM | SOCK_CLOEXEC, PX_PROTO_OE);
+     if (conn->sessionSocket < 0) {
+       error("Failed to create PPPoE socket: %m");
+       return -1;
+@@ -148,7 +148,7 @@ PPPOEConnectDevice(void)
+     lcp_wantoptions[0].mru = conn->mru;
+     /* Update maximum MRU */
+-    s = socket(AF_INET, SOCK_DGRAM, 0);
++    s = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+     if (s < 0) {
+       error("Can't get MTU for %s: %m", conn->ifName);
+       goto errout;
+@@ -320,7 +320,7 @@ PPPoEDevnameHook(char *cmd, char **argv, int doit)
+     }
+     /* Open a socket */
+-    if ((fd = socket(PF_PACKET, SOCK_RAW, 0)) < 0) {
++    if ((fd = socket(PF_PACKET, SOCK_RAW | SOCK_CLOEXEC, 0)) < 0) {
+       r = 0;
+     }
+diff --git a/pppd/plugins/rp-pppoe/pppoe-discovery.c b/pppd/plugins/rp-pppoe/pppoe-discovery.c
+index 3d3bf4e..c0d927d 100644
+--- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
++++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
+@@ -121,7 +121,7 @@ openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
+     stype = SOCK_PACKET;
+ #endif
+-    if ((fd = socket(domain, stype, htons(type))) < 0) {
++    if ((fd = socket(domain, stype | SOCK_CLOEXEC, htons(type))) < 0) {
+       /* Give a more helpful message for the common error case */
+       if (errno == EPERM) {
+           rp_fatal("Cannot create raw socket -- pppoe must be run as root.");
+diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
+index 00a2cf5..0690019 100644
+--- a/pppd/sys-linux.c
++++ b/pppd/sys-linux.c
+@@ -308,12 +308,12 @@ static int modify_flags(int fd, int clear_bits, int set_bits)
+ void sys_init(void)
+ {
+     /* Get an internet socket for doing socket ioctls. */
+-    sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
++    sock_fd = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+     if (sock_fd < 0)
+       fatal("Couldn't create IP socket: %m(%d)", errno);
+ #ifdef INET6
+-    sock6_fd = socket(AF_INET6, SOCK_DGRAM, 0);
++    sock6_fd = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+     if (sock6_fd < 0)
+       sock6_fd = -errno;      /* save errno for later */
+ #endif
+@@ -1857,7 +1857,7 @@ get_if_hwaddr(u_char *addr, char *name)
+       struct ifreq ifreq;
+       int ret, sock_fd;
+-      sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
++      sock_fd = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+       if (sock_fd < 0)
+               return 0;
+       memset(&ifreq.ifr_hwaddr, 0, sizeof(struct sockaddr));
+@@ -2067,7 +2067,7 @@ int ppp_available(void)
+ /*
+  * Open a socket for doing the ioctl operations.
+  */
+-    s = socket(AF_INET, SOCK_DGRAM, 0);
++    s = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+     if (s < 0)
+       return 0;
+@@ -2860,7 +2860,7 @@ ether_to_eui64(eui64_t *p_eui64)
+     int skfd;
+     const unsigned char *ptr;
+-    skfd = socket(PF_INET6, SOCK_DGRAM, 0);
++    skfd = socket(PF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0);
+     if(skfd == -1)
+     {
+         warn("could not open IPv6 socket");
+diff --git a/pppd/tty.c b/pppd/tty.c
+index bc96695..8e76a5d 100644
+--- a/pppd/tty.c
++++ b/pppd/tty.c
+@@ -896,7 +896,7 @@ open_socket(dest)
+     *sep = ':';
+     /* get a socket and connect it to the other end */
+-    sock = socket(PF_INET, SOCK_STREAM, 0);
++    sock = socket(PF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0);
+     if (sock < 0) {
+       error("Can't create socket: %m");
+       return -1;
+-- 
+1.8.3.1
+
diff --git a/src/patches/ppp/ppp-2.4.6-increase-max-padi-attempts.patch b/src/patches/ppp/ppp-2.4.6-increase-max-padi-attempts.patch
new file mode 100644 (file)
index 0000000..b09a9b5
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h
+index 9ab2eee..86762bd 100644
+--- a/pppd/plugins/rp-pppoe/pppoe.h
++++ b/pppd/plugins/rp-pppoe/pppoe.h
+@@ -148,7 +148,7 @@ extern UINT16_t Eth_PPPOE_Session;
+ #define STATE_TERMINATED    4
+ /* How many PADI/PADS attempts? */
+-#define MAX_PADI_ATTEMPTS 3
++#define MAX_PADI_ATTEMPTS 12
+ /* Initial timeout for PADO/PADS */
+ #define PADI_TIMEOUT 5
index 30616a4a5a48277487133a21aae1776eb77122a6..a340d6f1462e6eb1dd2ddacef5682dd28f8306b7 100644 (file)
@@ -2,8 +2,8 @@
 
 COREVER=$(cat /opt/pakfire/db/core/mine)
 # FIXME: edit this lines before release
-URL="http://download.ipfire.org/releases/ipfire-2.x/2.13-core$COREVER/"
-ISO="ipfire-2.13.i586-full-core$COREVER.iso"
+URL="http://download.ipfire.org/releases/ipfire-2.x/2.15-core$COREVER/"
+ISO="ipfire-2.15.i586-full-core$COREVER.iso"
 
 if [ -z $1 ]; then
        echo usage: $0 backup-file
@@ -60,6 +60,7 @@ echo "Running mkisofs"
 mkisofs -J -r -V "ipfire backup ${TS}" \
             -b boot/isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table \
             -c boot/isolinux/boot.catalog backupiso.${TS} > $(basename ${ISO} .iso)-${TS}.iso
+isohybrid $(basename ${ISO} .iso)-${TS}.iso
 
 echo "Cleaning up"
 rm -rf backupiso.${TS}
index f97e75074b48e5bf9d6f6412b800ce7d5084a03e..e26c524bcd1a93dc01283282872ac96013c5dcb9 100644 (file)
@@ -51,7 +51,7 @@ if ($ip eq "unavailable") {
        exit(0);
 }
 
-&General::log("Dynamic DNS public router IP is: $ip");
+#&General::log("Dynamic DNS public router IP is: $ip");
 
 if ($ARGV[0] eq '-f') {
        unlink ($cachefile);    # next regular calls will try again if this force update fails.
@@ -400,6 +400,41 @@ if ($ip ne $ipcache) {
                                &General::log("Dynamic DNS ip-update for $settings{'HOSTNAME'}.$settings{'DOMAIN'} : failure (could not connect to server)");
                            }
                        }
+                        elsif ($settings{'SERVICE'} eq 'spdns.de') {
+                            # use proxy ?
+                            my %proxysettings;
+                            &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);
+                            if ($_=$proxysettings{'UPSTREAM_PROXY'}) {
+                                my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);
+                                Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );
+                            }
+                            
+                            if ($settings{'HOSTNAME'} eq '') {
+                                $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'};
+                            } else {
+                                $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}";
+                            }
+                            
+                            my ($out, $response) = Net::SSLeay::get_https( 'update.spdns.de', 443,
+                                                                            "/nic/update?&hostname=$settings{'HOSTDOMAIN'}&myip=$ip",
+                                                                            Net::SSLeay::make_headers('User-Agent' => 'IPFire' ,
+                                                                                                      'Authorization' => 'Basic ' . encode_base64("$settings{'LOGIN'}:$settings{'PASSWORD'}"))
+                                                                         );
+                            
+                            #Valid responses from service are:
+                            # good xxx.xxx.xxx.xxx
+                            # nochg  xxx.xxx.xxx.xxx
+                            if ($response =~ m%HTTP/1\.. 200 OK%) {
+                                if ($out !~ m/good |nochg /ig) {
+                                    &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure ($out)");
+                                } else {
+                                    &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : success");
+                                    $success++;
+                                }
+                            } else {
+                                &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server)");
+                            }
+                        }
                        elsif ($settings{'SERVICE'} eq 'strato') {
                                # use proxy ?
                                my %proxysettings;
@@ -650,6 +685,73 @@ if ($ip ne $ipcache) {
                                &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server, check your credentials---$out-$response--)");
                            }
                        }
+                        elsif ($settings{'SERVICE'} eq 'twodns.de') {
+                            # use proxy ?
+                            my %proxysettings;
+                            &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);
+                            if ($_=$proxysettings{'UPSTREAM_PROXY'}) {
+                                my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);
+                                Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );
+                            }
+
+                            if ($settings{'HOSTNAME'} eq '') {
+                                $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'};
+                            } else {
+                                $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}";
+                            }
+
+                            my ($out, $response) = Net::SSLeay::get_https( 'update.twodns.de',
+                                                                            443,
+                                                                           "/update?hostname=$settings{'HOSTDOMAIN'}&ip=$ip",
+                                                                            Net::SSLeay::make_headers('User-Agent' => 'IPFire',
+                                                                                                      'Authorization' => 'Basic ' . encode_base64("$settings{'LOGIN'}:$settings{'PASSWORD'}")) );
+
+                            # Valid response are 'ok'   'nochange'
+                            if ($response =~ m%HTTP/1\.. 200 OK%) {
+                                if ( $out !~ m/^(good|nochg)/ ) {
+                                    $out =~ s/\n/ /g;
+                                    &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure ($out)");
+                                } else {
+                                    &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : success");
+                                    $success++;
+                                }
+                            } else {
+                                &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server, check your credentials---$out-$response--)");
+                            }
+                        }
+                       elsif ($settings{'SERVICE'} eq 'variomedia') { 
+                           # use proxy ?
+                           my %proxysettings;
+                           &General::readhash("${General::swroot}/proxy/settings", \%proxysettings);
+                           if ($_=$proxysettings{'UPSTREAM_PROXY'}) {
+                               my ($peer, $peerport) = (/^(?:[a-zA-Z ]+\:\/\/)?(?:[A-Za-z0-9\_\.\-]*?(?:\:[A-Za-z0-9\_\.\-]*?)?\@)?([a-zA-Z0-9\.\_\-]*?)(?:\:([0-9]{1,5}))?(?:\/.*?)?$/);
+                               Net::SSLeay::set_proxy($peer,$peerport,$proxysettings{'UPSTREAM_USER'},$proxysettings{'UPSTREAM_PASSWORD'} );
+                           }
+                           if ($settings{'HOSTNAME'} eq '') {
+                               $settings{'HOSTDOMAIN'} = $settings{'DOMAIN'};
+                           } else {
+                               $settings{'HOSTDOMAIN'} = "$settings{'HOSTNAME'}.$settings{'DOMAIN'}";
+                           }
+                           my ($out, $response) = Net::SSLeay::get_https( 'dyndns.variomedia.de',
+                                                                           443,
+                                                                           "/nic/update?hostname=$settings{'HOSTDOMAIN'}&myip=$ip",
+                                                                           Net::SSLeay::make_headers('User-Agent' => 'IPFire',
+                                                                                                     'Authorization' => 'Basic ' . encode_base64("$settings{'LOGIN'}:$settings{'PASSWORD'}")) );
+                           # Valid response is 'good $ip'
+                           if ($response =~ m%HTTP/1\.. 200 OK%) {
+                               if ( $out !~ m/^good $ip/ ) {
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} ($ip) : failure ($out)");
+                               } else {
+                                   &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} ($ip) : success");
+                                   $success++;
+                               }
+                           } else {
+                               &General::log("Dynamic DNS ip-update for $settings{'HOSTDOMAIN'} : failure (could not connect to server, check your credentials---$out-$response--)");
+                           }
+                       }
                        else {
                                if ($settings{'WILDCARDS'} eq 'on') {
                                    $settings{'WILDCARDS'} = '-w';