This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via 270d7c0d3747d7124a66770ee729aa519b8ee847 (commit) via 46443100e0eaa2bd7a23badc8eaeff9d3a1eca5d (commit) via 508547f98d15c824a2ecf9fd9d4aa0a41a963a6a (commit) via f6340997aa216e00fef0f7c7951a4d4084a95d36 (commit) via e2839b1a2cd0bb60a91931cb2e427370a7e5e206 (commit) via 5410fcbc452fe06a4a7de3789ad83f5a9b4a4660 (commit) via 5153fcc9f114f96ea2b84d78123dd5941f2cc8dc (commit) via 276f938b09075debb6f2aab517f03010c1a4a4a8 (commit) via 82215f2d5fa4e654314edc73e6adc28a02043530 (commit) via 8163192065545987ce9e515b8d1bd7f0b6ba705c (commit) via f3e3cb371dc3a279b30510eb56c263b3d2a093ce (commit) via 17ee1f135f67b91fe0d57189a2f2b57186e4c81e (commit) via 2ccb63bce8b63efe3e7b1ce72dff115692c3becd (commit) via a81cbf61273536ee36f3d26504aabdcd65d39cca (commit) via 1366526c0b96a0004ad96888ec32744fc6fc286b (commit) via 4abd5cd00e3d70b200dfa2bbe2cc72a805c1fecb (commit) via fa7f2e219a4601e9d72b347afff8b21d34f789c2 (commit) via 2763aeecf8d2381b7d291b2b879284402debd292 (commit) via 4f388b7e7139620d9521d42d07065ee5dcfd0be8 (commit) via 6323e9086f7fdcf5373a89c23da09a330baea091 (commit) via 7d72dba39dff6af3763832ec168b05a2a4e4a0d1 (commit) via cbc2e87dba9f7653070d2cb9c2296a0d3b3c8887 (commit) via 30b8e6a1bdf44d55f526c5f1ded06d96e806ab47 (commit) via 63c0ec8f683e1f331efb301b33871dc82f2e41f8 (commit) via f034b9515670e7c6fe92d689f8247f44c6052daf (commit) via 3514a0bc0f0ebec8acf478932a7100e66bb557ce (commit) via e4104affc415240e0eaffb2135f8d9125a05a8a3 (commit) via b217d8a70f8cba9d95b557cf00fc7d5265a2fe17 (commit) via e5cd2620bcf24a5754645c7340a125dc9013bf34 (commit) via 90d81a4b8a85130514a6912c0c700bc4618b8519 (commit) via 3eb7c08b89ba3af79e70396e6cba5273857f3186 (commit) via d87928c091dfb6918564d76bd16ad48d6114d575 (commit) via 5617cb0d42a59920b9a9c0d76352319f9a717cc4 (commit) via f57e1628f6d66dea2c212d7bfc17ce8e1bf2520b (commit) via d22c7c106293bc5ea3bee8d1df4058cdc33467f6 (commit) via 7b7b3bb96292c388d4849c5d6ec36ff6c55a245d (commit) via 9d2c1158c9a3f48d96215a69ecb330a5438e9d0f (commit) via 3404ea7df8a99818961a3d41c0f2e3fc69fc6092 (commit) via c4a54c419d48d1d89a87a26164061df2a4cb633d (commit) via 5b057b3f31450f1692fa9edd104a97e560f4693c (commit) via 66d63924922c35863bc3b6882bf3ac24d188136d (commit) via 150fadab40f740e834a28c768ceb333167e8d76e (commit) via 0fd1f8bba66a25f215b49521c7125d51d846ba5d (commit) via ed863076029882a786f0c9608eb21e921146a22c (commit) via d57cecaafc4a7e86411c0e28768b2ef67919bb19 (commit) via 5b8ecec9e8ff95251397ec057881859e3a36eef8 (commit) via 661918881ff33de140d643d056296bf2d858c345 (commit) via d10e04ec9948ad5d43a392a79a9312153690d2b4 (commit) via 3be1e3c6f78a166029464de23078e367cc34dfa1 (commit) via 88985bcc6ee6bf7fb9ac734b39411e6e013feb44 (commit) via 88095fce905a14b9ac1b75290c5fb9d576711128 (commit) via 2feacd989823aa1dbd5844c315a9abfd49060487 (commit) via 2a4b9f0eef48c3c60fc60c24b2c7f30ba8ab142e (commit) via 1e7c0108abd27f9c970d1719c09927d99c8ffea9 (commit) via 12317449d0cdfde685f4f9d97914a66d5e4982cf (commit) via 875041991c838d25ba236e9bd6e253e16411a264 (commit) via 31c46c07585ca71330a97838c2a45933bcb88031 (commit) via 3f5cb3b7ccdeca87fb5eaaf66436c93aa50280dc (commit) via 4353c579248b3016740252009b4ed15a4c6f8fe3 (commit) via 2386d2eff7ee0c788a67adb7301a63534073ba86 (commit) via 3a69c4fbbc668771a1062a35b2f5262b88401530 (commit) via 2bbf176619985f552e2418e167100425163aa5e7 (commit) via d39c7076acf4db959ec2d8b54e09b1479bb7b7e8 (commit) via 751765b732cc914f45ca123f609af7fc09baa208 (commit) via 15c3570d1c23d764c34a1acaab11fe0751ef69d9 (commit) via 5c9c1ce9bf23539935742f44cda320aea1ef9238 (commit) via 305b72cc7520b62f521671b9f88d768954e30529 (commit) via c1d77628c397e39a00ee0fa2f491b122825418ca (commit) via 0b0e6d586bc327dfa5f2b8752e8066a92655a5e7 (commit) via 43ecaceb4da5b868f62ae6ff9daf30927fc335e8 (commit) via f5f181838ffb6556c50995a16112257f6badc30f (commit) via 0483dca6292cfd14a9a37f89e75185520eaeee02 (commit) via 761c08a7c7eb89797f8316c8f69af965e7c9d768 (commit) via 8a1e6afef57f63d8955ddb165395c09227d0b2ac (commit) via dfdf076d71677d0fe2a7d611e56815586f3a0e84 (commit) via ea9ad05e3800a982a9133cabcb23adeb865a8eaa (commit) via 32d34774d3d5eb996db063d8d063050280a8eb5a (commit) via a87366f5f40da94db11dffec2864b3514988fd43 (commit) via c4391a0181b5bff0ac2db8efcdcefc9e20c3e098 (commit) via bce859434884b3d147b75eb1ab085b937353d436 (commit) via 03fe4081127edfaf692bec0980b0f82b5aa0ac6c (commit) from 7f6620986c97536d7f4762331a91358b45ad15ba (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 270d7c0d3747d7124a66770ee729aa519b8ee847 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 17 20:12:32 2021 +0000
core158: Ship web-user-interface
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 46443100e0eaa2bd7a23badc8eaeff9d3a1eca5d Merge: fa7f2e219 508547f98 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 17 20:11:47 2021 +0000
Merge branch 'perl-system' into next
commit 508547f98d15c824a2ecf9fd9d4aa0a41a963a6a Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Jun 17 21:52:00 2021 +0200
hardwaregraphs.cgi: Perform all sensor lookups in pure perl.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit f6340997aa216e00fef0f7c7951a4d4084a95d36 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu Jun 17 18:54:17 2021 +0200
services.cgi: Redesign isautorun() because shell globbing cannot used anymore.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit e2839b1a2cd0bb60a91931cb2e427370a7e5e206 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Jun 15 19:19:24 2021 +0200
remote.cgi: Fix splitting output from ssh-keygen.
The split function requires an string as input.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 5410fcbc452fe06a4a7de3789ad83f5a9b4a4660 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon Jun 14 21:38:42 2021 +0200
dhcp.cgi: Fix typo and displaying advanced options syntax.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 5153fcc9f114f96ea2b84d78123dd5941f2cc8dc Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue Jun 8 18:03:30 2021 +0200
fireinfo.cgi: Fix read-in profile data.
To read-in the whole file content the data type needs to be an array.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 276f938b09075debb6f2aab517f03010c1a4a4a8 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu May 20 21:13:50 2021 +0200
time.cgi: Get and manipuate date and time in pure perl
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 82215f2d5fa4e654314edc73e6adc28a02043530 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu May 20 20:31:33 2021 +0200
netexternal.cgi: Grab DNS servers in pure perl
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 8163192065545987ce9e515b8d1bd7f0b6ba705c Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu May 20 19:53:00 2021 +0200
ids-functions.pl: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit f3e3cb371dc3a279b30510eb56c263b3d2a093ce Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu May 20 19:50:01 2021 +0200
network-functions.pl: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 17ee1f135f67b91fe0d57189a2f2b57186e4c81e Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu May 20 19:46:59 2021 +0200
mdstat.cgi: Print mdstat status in pure perl
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 2ccb63bce8b63efe3e7b1ce72dff115692c3becd Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu May 20 19:43:10 2021 +0200
fireinfo.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit a81cbf61273536ee36f3d26504aabdcd65d39cca Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu May 20 18:36:44 2021 +0200
vpnmain.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 1366526c0b96a0004ad96888ec32744fc6fc286b Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu May 20 17:58:24 2021 +0200
pppsetup.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 4abd5cd00e3d70b200dfa2bbe2cc72a805c1fecb Author: Stefan Schantl stefan.schantl@ipfire.org Date: Thu May 20 17:45:30 2021 +0200
wireless.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit fa7f2e219a4601e9d72b347afff8b21d34f789c2 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 17 20:06:52 2021 +0000
core158: Ship xfsprogs
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 2763aeecf8d2381b7d291b2b879284402debd292 Author: Adolf Belka adolf.belka@ipfire.org Date: Thu Jun 17 11:47:16 2021 +0200
xfsprogs: Update to 5.12.0
- Update from 5.11.0 to 5.12.0 - Update of rootfile not required - Changelog xfsprogs-5.12.0 (21 May 2021) - No further changes xfsprogs-5.12.0-rc1 (07 May 2021) - mkfs: don't default to too-large physical sector size (Jeff Moyer) - repair: phase 6 speedups (Dave Chinner, Gao Xiang) - man: Add dax mount option to man xfs(5) (Carlos Maiolino) - xfs_admin: pick up log arguments correctly (Darrick Wong) - xfs_growfs: support shrinking unused space (Gao Xiang) - libfrog: report inobtcount in geometry (Darrick Wong) - xfs_logprint: Fix buffer overflow printing quotaoff (Carlos Maiolino) - xfsprogs: include <signal.h> for platform_crash (Leah Neukirchen) - xfsprogs: remove BMV_IF_NO_DMAPI_READ flag (Anthony Iliopoulos) - workqueue: bound maximum queue depth (Dave Chinner) xfsprogs-5.12.0-rc0 (12 Apr 2021) - libxfs changes merged from kernel 5.12
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 4f388b7e7139620d9521d42d07065ee5dcfd0be8 Author: Adolf Belka adolf.belka@ipfire.org Date: Thu Jun 17 11:47:00 2021 +0200
cups-filters: Update to 1.28.9
- Update from 1.28.8 to 1.28.9 - Update of rootfile not required - Changelog CHANGES IN V1.28.9 - libcupsfilters: Silenced compiler warnings - libcupsfilters: Removed duplicate code in the apply_filters() function. - driverless: If there are no driverless IPP printers available let "driverless" terminate with exit code 0 and not 1, to follow CUPS' standard of backends in discovery mode terminating with 0 if there are no appropriate printers found (Issue #375). - gstoraster, foomatic-rip: Fixed Ghostscript command line for counting pages as it took too long on PDFs from evince when printing DjVu files (Issue #354, Pull request #371, Ubuntu bug #1920730). - cups-browsed: Renamed ldap_connect() due to conflict in new openldap (Issue #367, Pull request #370). - pdftoraster: Free color data after processing of each page (Pull request #363). - cups-browsed: Always save "...-default" option entries from printers.conf, regardless of presence or absense of PPD file (Pull request #359). - cups-browsed: Start after network-online.target (Pull request #360). - texttopdf: Set default margins when no PPD file is used (Pull request #356).
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 6323e9086f7fdcf5373a89c23da09a330baea091 Author: Peter Müller peter.mueller@ipfire.org Date: Tue Jun 15 22:29:34 2021 +0200
proxy.cgi: drop options for faking Referer and User-Agent HTTP headers
While maintaining privacy when accessing web sites probably has never been more important than it is today, faking Referer and User-Agent headers is both obsolete and counterproductive:
(a) Most web sites require HTTPS, thwarting manipulation attempts to HTTP headers in transit. Given todays' internet landscape, faking these headers is unlikely to work for the vast majority of web sites.
(b) It is trivial to detect faked HTTP User-Agent headers by obtaining corresponding browser information via JavaScript. Any difference most likely indicates (trivial) header manipulation attempts, hence rendering this feature useless if browsers do not behave in the same manner, which we cannot control on IPFire.
(c) Especially static Referer headers make users stick out like a sore thumb, as nobody else in the world is likely to have the same Referer set _all the time_.
Modern browsers attempt to strip sensitive information from Referer headers, or ditch them completely, particularly to 3rd party sites.
Given the state of the web ecosystem as we know it today, enforcing privacy in a centralised manner does not even come close to being sufficient. Without gaining control over users' browsers, their settings, and their infrastructure (such as setting up terminal environments for accessing the web, preventing hardware fingerprinting), a centralised attempt will at best fail, if not making things worse, as highlighted in (c).
Therefore, removing these features from the Squid GUI is the least worse option we have. We should not give our users a false sense of privacy.
Signed-off-by: Peter Müller peter.mueller@ipfire.org Reviewed-by: Bernhard Bitsch bbitsch@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 7d72dba39dff6af3763832ec168b05a2a4e4a0d1 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 17 20:04:31 2021 +0000
core158: Ship smartmontools
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit cbc2e87dba9f7653070d2cb9c2296a0d3b3c8887 Author: Peter Müller peter.mueller@ipfire.org Date: Tue Jun 15 19:42:11 2021 +0200
smartmontools: update to 7.2
Release announcement of this version as per https://www.smartmontools.org/browser/tags/RELEASE_7_2/smartmontools/NEWS:
Date 2020-12-30 Summary: smartmontools release 7.2 ----------------------------------------------------------- - smartctl: New option '--json=y[c]' selects YAML output. - smartctl '-i': Prints ATA TRIM and Zoned Device capabilities. - smartctl '-j': Fixed 'scsi_grown_defect_list' value. - smartctl '-a': Prints SCSI 'Accumulated power on time'. - smartctl '-n POWERMODE': SCSI support. - smartctl '-s standby,now' and '-s standby,off': SCSI support. - smartctl '-c': NVMe 1.4 additions. - smartd: Support for staggered self-tests. - smartd: No longer writes attribute log if no attributes were read due to standby mode or other error. - smartd: Now resolves symlinks before device names are checked for duplicates. - smartd: Fixed SMARTD_DEVICETYPE environment variable if DEVICESCAN is used without '-d TYPE'. - ATA: Device type '-d jmb39x-q,N' for JMB39x protocol variant used by some QNAP NAS devices. - ATA: Device type '-d jms56x,N' for JMS562 USB to SATA RAID bridges. - SCSI: Improved heuristics for log subpages of new and very old disks. - NVMe: Log transfer size limited to avoid device or kernel crashes. - NVMe/USB: Device type '-d sntrealtek' for Realtek RTL9210 USB to NVMe bridges. - update-smart-drivedb: New option '--branch X.Y'. - HDD, SSD and USB additions to drive database. - Dropped support for pre-C99 snprintf(). - configure: Dropped option '--without-working-snprintf'. - configure: Fixed '-fstack-protector*' detection. - Linux: Various fixes of smartd.service file. - Darwin: NVMe log support. - FreeBSD: Device scan does no longer include T_ENCLOSURE devices. - NetBSD: Fixed timeout handling. - NetBSD big endian: Fixed ATA register handling. - OpenBSD: Fixed timeout handling. - Windows: Dropped backward compatibility fixes for very old compilers.
Signed-off-by: Peter Müller peter.mueller@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 30b8e6a1bdf44d55f526c5f1ded06d96e806ab47 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 17 20:03:58 2021 +0000
core158: Ship hwdata
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 63c0ec8f683e1f331efb301b33871dc82f2e41f8 Author: Peter Müller peter.mueller@ipfire.org Date: Tue Jun 15 19:39:01 2021 +0200
hwdata: update PCI/USB databases
PCI IDs: 2021-05-16 03:15:02 USB IDs: 2021-06-06 20:34:10
Signed-off-by: Peter Müller peter.mueller@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit f034b9515670e7c6fe92d689f8247f44c6052daf Author: Peter Müller peter.mueller@ipfire.org Date: Tue Jun 15 19:37:03 2021 +0200
Postfix: update to 3.6.1
This versions' release announcement can be retrieved here: http://www.postfix.org/announcements/postfix-3.6.1.html
Signed-off-by: Peter Müller peter.mueller@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 3514a0bc0f0ebec8acf478932a7100e66bb557ce Author: Adolf Belka adolf.belka@ipfire.org Date: Tue Jun 15 19:15:44 2021 +0200
glib: Update to 2.68.3
- Update from 2.68.2 to 2.68.3 - Update rootfile - Changelog Overview of changes in GLib 2.68.3 * Bugs fixed: - #2311 testfilemonitor test leaks ip_watched_file_t struct - #2417 GFile: `g_file_replace_contents()` reports `G_IO_ERROR_WRONG_ETAG` when saving from a symlink - !2133 Backport !2128 “inotify: Fix a memory leak” to glib-2-68 - !2137 Backport !2136 “tlscertificate: Avoid possible invalid read” to glib-2-68 - !2141 Backport !2138 “glocalfileoutputstream: Fix ETag check when replacing through a symlink” to glib-2-68
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit e4104affc415240e0eaffb2135f8d9125a05a8a3 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 17 20:02:35 2021 +0000
core158: Ship fuse
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit b217d8a70f8cba9d95b557cf00fc7d5265a2fe17 Author: Adolf Belka adolf.belka@ipfire.org Date: Tue Jun 15 19:15:26 2021 +0200
fuse: Update to 3.10.4
- Update from 3.10.3 to 3.10.4 - Update of rootfile - Changelog * Building of unit tests is now optional. * Fixed a test failure when running tests under XFS. * Fixed memory leaks in examples. * Minor documentation fixes.
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit e5cd2620bcf24a5754645c7340a125dc9013bf34 Author: Adolf Belka adolf.belka@ipfire.org Date: Tue Jun 15 19:15:11 2021 +0200
cmake: Update to 3.20.4
- Update from 3.20.3 to 3.20.4 - Update of rootfile not required. - Changelog Changes in 3.20.4 since 3.20.3: Ben Boeckel (1): ci: use consistent sccache builds Brad King (8): VS: Add special case for '-T version=14.29.16.10' under VS 16.10 VS: Add flag table entries for '/external:W*' flags in VS 16.10 gitlab-ci: Update Windows builds to MSVC 19.29-16.10 toolset Makefiles: Fix CMAKE_EXPORT_COMPILE_COMMANDS crash with custom compile rule presets: Fix buildPreset "jobs" field test case IRSL: Add Intel oneAPI redist location on Windows fileapi: Fix codemodel-v2 link command fragment relative paths John Drouhard (1): FindBoost: Add check for json component header in Boost 1.75+ Marc Chevrier (1): Help: cmake_path: fix erroneous example for IS_PREFIX Raul Tambre (2): MSVC: C++20 final flag, C++23 support Clang/MSVC: C++20 final flag, C++23 support Sam Freed (2): presets: Fix buildPreset "jobs" presets: Fix buildPreset "targets" not allowing a single string
Signed-off-by: Adolf Belka adolf.belka@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 90d81a4b8a85130514a6912c0c700bc4618b8519 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:28:53 2021 +0100
wlanap.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 3eb7c08b89ba3af79e70396e6cba5273857f3186 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:26:19 2021 +0100
wirelessclient.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit d87928c091dfb6918564d76bd16ad48d6114d575 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:25:44 2021 +0100
wireless.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 5617cb0d42a59920b9a9c0d76352319f9a717cc4 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:25:02 2021 +0100
webaccess.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit f57e1628f6d66dea2c212d7bfc17ce8e1bf2520b Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:24:29 2021 +0100
wakeonlan.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit d22c7c106293bc5ea3bee8d1df4058cdc33467f6 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:23:52 2021 +0100
vpnmain.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 7b7b3bb96292c388d4849c5d6ec36ff6c55a245d Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:23:06 2021 +0100
urlfilter.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 9d2c1158c9a3f48d96215a69ecb330a5438e9d0f Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:08:23 2021 +0100
updatexlrator.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 3404ea7df8a99818961a3d41c0f2e3fc69fc6092 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:05:05 2021 +0100
traffic.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit c4a54c419d48d1d89a87a26164061df2a4cb633d Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:01:36 2021 +0100
tor.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 5b057b3f31450f1692fa9edd104a97e560f4693c Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 15:00:54 2021 +0100
time.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 66d63924922c35863bc3b6882bf3ac24d188136d Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:56:40 2021 +0100
shutdown.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 150fadab40f740e834a28c768ceb333167e8d76e Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:55:52 2021 +0100
services.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 0fd1f8bba66a25f215b49521c7125d51d846ba5d Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:54:52 2021 +0100
samba.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit ed863076029882a786f0c9608eb21e921146a22c Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:46:29 2021 +0100
routing.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit d57cecaafc4a7e86411c0e28768b2ef67919bb19 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:46:04 2021 +0100
remote.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 5b8ecec9e8ff95251397ec057881859e3a36eef8 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:45:27 2021 +0100
qos.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 661918881ff33de140d643d056296bf2d858c345 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:41:24 2021 +0100
proxy.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit d10e04ec9948ad5d43a392a79a9312153690d2b4 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:35:56 2021 +0100
pppsetup.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 3be1e3c6f78a166029464de23078e367cc34dfa1 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:35:09 2021 +0100
optionsfw.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 88985bcc6ee6bf7fb9ac734b39411e6e013feb44 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:33:57 2021 +0100
mpfire.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 88095fce905a14b9ac1b75290c5fb9d576711128 Author: Michael Tremer michael.tremer@ipfire.org Date: Thu Jun 10 14:32:44 2021 +0100
modem.cgi: Use new perl system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 2feacd989823aa1dbd5844c315a9abfd49060487 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Wed May 19 21:23:47 2021 +0200
ovpnmain.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 2a4b9f0eef48c3c60fc60c24b2c7f30ba8ab142e Author: Stefan Schantl stefan.schantl@ipfire.org Date: Tue May 18 19:38:02 2021 +0200
gpl.cgi: Grab and GPLv3 license in pure perl.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 1e7c0108abd27f9c970d1719c09927d99c8ffea9 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 23:17:43 2021 +0200
speed.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 12317449d0cdfde685f4f9d97914a66d5e4982cf Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 23:15:42 2021 +0200
qos.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 875041991c838d25ba236e9bd6e253e16411a264 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 23:10:32 2021 +0200
proxy.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 31c46c07585ca71330a97838c2a45933bcb88031 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 23:08:01 2021 +0200
services.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 3f5cb3b7ccdeca87fb5eaaf66436c93aa50280dc Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 23:02:53 2021 +0200
remote.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 4353c579248b3016740252009b4ed15a4c6f8fe3 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 22:53:23 2021 +0200
memory.cgi: Use perl mechanism to check if the rrd file for the swap exists.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 2386d2eff7ee0c788a67adb7301a63534073ba86 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 22:49:15 2021 +0200
hardwaregraphs.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 3a69c4fbbc668771a1062a35b2f5262b88401530 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 22:32:21 2021 +0200
extrahd.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 2bbf176619985f552e2418e167100425163aa5e7 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 22:25:44 2021 +0200
dhcp.cgi: Use perl built-in grep
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit d39c7076acf4db959ec2d8b54e09b1479bb7b7e8 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Mon May 17 21:43:48 2021 +0200
connections.cgi: Use new system methods
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org
commit 751765b732cc914f45ca123f609af7fc09baa208 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:57:29 2021 +0100
mac.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 15c3570d1c23d764c34a1acaab11fe0751ef69d9 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:55:14 2021 +0100
index.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 5c9c1ce9bf23539935742f44cda320aea1ef9238 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:52:03 2021 +0100
hosts.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 305b72cc7520b62f521671b9f88d768954e30529 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:50:59 2021 +0100
gui.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit c1d77628c397e39a00ee0fa2f491b122825418ca Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:50:15 2021 +0100
guardian: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 0b0e6d586bc327dfa5f2b8752e8066a92655a5e7 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:48:26 2021 +0100
fwhosts.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 43ecaceb4da5b868f62ae6ff9daf30927fc335e8 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:43:56 2021 +0100
firewall.cgi: Use new system commands
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit f5f181838ffb6556c50995a16112257f6badc30f Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:42:23 2021 +0100
fireinfo.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 0483dca6292cfd14a9a37f89e75185520eaeee02 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:41:08 2021 +0100
extrahd.cgi: Use new system functions
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 761c08a7c7eb89797f8316c8f69af965e7c9d768 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:39:41 2021 +0100
dnsforward.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 8a1e6afef57f63d8955ddb165395c09227d0b2ac Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:38:18 2021 +0100
dns.cgi: Use new system commands
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit dfdf076d71677d0fe2a7d611e56815586f3a0e84 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:37:07 2021 +0100
dhcp.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit ea9ad05e3800a982a9133cabcb23adeb865a8eaa Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:34:15 2021 +0100
ddns.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 32d34774d3d5eb996db063d8d063050280a8eb5a Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:32:50 2021 +0100
captive.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit a87366f5f40da94db11dffec2864b3514988fd43 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:28:24 2021 +0100
backup.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit c4391a0181b5bff0ac2db8efcdcefc9e20c3e098 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:20:06 2021 +0100
aliases.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit bce859434884b3d147b75eb1ab085b937353d436 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 19:18:42 2021 +0100
pakfire.cgi: Use new system methods
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 03fe4081127edfaf692bec0980b0f82b5aa0ac6c Author: Michael Tremer michael.tremer@ipfire.org Date: Mon May 17 18:42:01 2021 +0100
general-functions.pl: Add "safe" system commands
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
-----------------------------------------------------------------------
Summary of changes: config/cfgroot/general-functions.pl | 71 ++ config/cfgroot/ids-functions.pl | 6 +- config/cfgroot/network-functions.pl | 2 +- config/rootfiles/common/fuse | 2 +- config/rootfiles/common/glib | 14 +- config/rootfiles/core/158/filelists/files | 6 - .../{oldcore/112 => core/158}/filelists/fuse | 0 .../{oldcore/132 => core/158}/filelists/hwdata | 0 .../106 => core/158}/filelists/smartmontools | 0 .../112 => core/158}/filelists/web-user-interface | 0 .../{oldcore/125 => core/158}/filelists/xfsprogs | 0 html/cgi-bin/aliases.cgi | 2 +- html/cgi-bin/backup.cgi | 16 +- html/cgi-bin/captive.cgi | 2 +- html/cgi-bin/connections.cgi | 9 +- html/cgi-bin/ddns.cgi | 2 +- html/cgi-bin/dhcp.cgi | 34 +- html/cgi-bin/dns.cgi | 6 +- html/cgi-bin/dnsforward.cgi | 6 +- html/cgi-bin/extrahd.cgi | 14 +- html/cgi-bin/fireinfo.cgi | 26 +- html/cgi-bin/firewall.cgi | 10 +- html/cgi-bin/fwhosts.cgi | 12 +- html/cgi-bin/gpl.cgi | 14 +- html/cgi-bin/guardian.cgi | 12 +- html/cgi-bin/gui.cgi | 4 +- html/cgi-bin/hardwaregraphs.cgi | 106 +- html/cgi-bin/hosts.cgi | 4 +- html/cgi-bin/index.cgi | 4 +- html/cgi-bin/mac.cgi | 4 +- html/cgi-bin/mdstat.cgi | 8 +- html/cgi-bin/memory.cgi | 2 +- html/cgi-bin/modem.cgi | 2 +- html/cgi-bin/mpfire.cgi | 2 +- html/cgi-bin/netexternal.cgi | 3 +- html/cgi-bin/optionsfw.cgi | 4 +- html/cgi-bin/ovpnmain.cgi | 378 ++++--- html/cgi-bin/pakfire.cgi | 22 +- html/cgi-bin/pppsetup.cgi | 21 +- html/cgi-bin/proxy.cgi | 126 +-- html/cgi-bin/qos.cgi | 44 +- html/cgi-bin/remote.cgi | 14 +- html/cgi-bin/routing.cgi | 2 +- html/cgi-bin/samba.cgi | 30 +- html/cgi-bin/services.cgi | 69 +- html/cgi-bin/shutdown.cgi | 4 +- html/cgi-bin/speed.cgi | 4 +- html/cgi-bin/time.cgi | 30 +- html/cgi-bin/tor.cgi | 4 +- html/cgi-bin/traffic.cgi | 12 +- html/cgi-bin/updatexlrator.cgi | 32 +- html/cgi-bin/urlfilter.cgi | 75 +- html/cgi-bin/vpnmain.cgi | 158 +-- html/cgi-bin/wakeonlan.cgi | 2 +- html/cgi-bin/webaccess.cgi | 2 +- html/cgi-bin/wireless.cgi | 8 +- html/cgi-bin/wirelessclient.cgi | 2 +- html/cgi-bin/wlanap.cgi | 6 +- langs/de/cgi-bin/de.pl | 3 - langs/en/cgi-bin/en.pl | 3 - langs/es/cgi-bin/es.pl | 3 - langs/fr/cgi-bin/fr.pl | 3 - langs/it/cgi-bin/it.pl | 3 - langs/nl/cgi-bin/nl.pl | 3 - langs/pl/cgi-bin/pl.pl | 3 - langs/ru/cgi-bin/ru.pl | 3 - langs/tr/cgi-bin/tr.pl | 3 - lfs/cmake | 4 +- lfs/cups-filters | 6 +- lfs/fuse | 4 +- lfs/glib | 4 +- lfs/hwdata | 2 +- lfs/postfix | 6 +- lfs/smartmontools | 6 +- lfs/xfsprogs | 4 +- src/hwdata/pci.ids | 1138 +++++++++++++++++--- src/hwdata/usb.ids | 131 ++- 77 files changed, 2043 insertions(+), 743 deletions(-) copy config/rootfiles/{oldcore/112 => core/158}/filelists/fuse (100%) copy config/rootfiles/{oldcore/132 => core/158}/filelists/hwdata (100%) copy config/rootfiles/{oldcore/106 => core/158}/filelists/smartmontools (100%) copy config/rootfiles/{oldcore/112 => core/158}/filelists/web-user-interface (100%) copy config/rootfiles/{oldcore/125 => core/158}/filelists/xfsprogs (100%)
Difference in files: diff --git a/config/cfgroot/general-functions.pl b/config/cfgroot/general-functions.pl index a6656ccf5..96a826a15 100644 --- a/config/cfgroot/general-functions.pl +++ b/config/cfgroot/general-functions.pl @@ -28,6 +28,77 @@ $General::adminmanualurl = 'http://wiki.ipfire.org';
require "${General::swroot}/network-functions.pl";
+# This function executes a shell command without forking a shell or do any other +# Perl-voodoo before it. It deprecates the "system" command and is the only way +# to call shell commands. +sub safe_system($) { + my @command = @_; + + system { ${command[0]} } @command; + + # Return exit code + return $? >> 8; +} + +# Calls a process in the background and returns nothing +sub system_background($) { + my $pid = fork(); + + unless ($pid) { + my $rc = &system(@_); + exit($rc); + } + + return 0; +} + +# Returns the output of a shell command +sub system_output($) { + my @command = @_; + my $pid; + my @output = (); + + unless ($pid = open(OUTPUT, "-|")) { + open(STDERR, ">&STDOUT"); + exec { ${command[0]} } @command; + die "Could not execute @command: $!"; + } + + waitpid($pid, 0); + + while (<OUTPUT>) { + push(@output, $_); + } + close(OUTPUT); + + return @output; +} + +# Calls a shell command and throws away the output +sub system($) { + my @command = @_; + + open(SAVEOUT, ">&STDOUT"); + open(SAVEERR, ">&STDERR"); + + open(STDOUT, ">/dev/null"); + open(STDERR, ">&STDOUT"); + + select(STDERR); $|=1; + select(STDOUT); $|=1; + + my $rc = &safe_system(@command); + + close(STDOUT); + close(STDERR); + + # Restore + open(STDOUT, ">&SAVEOUT"); + open(STDERR, ">&SAVEERR"); + + return $rc; +} + # Function to remove duplicates from an array sub uniq { my %seen; grep !$seen{$_}++, @_ }
diff --git a/config/cfgroot/ids-functions.pl b/config/cfgroot/ids-functions.pl index 2fdae4a7a..0e397ca19 100644 --- a/config/cfgroot/ids-functions.pl +++ b/config/cfgroot/ids-functions.pl @@ -118,7 +118,7 @@ sub check_and_create_filelayout() { # sub checkdiskspace () { # Call diskfree to gather the free disk space of /var. - my @df = `/bin/df -B M /var`; + my @df = &General::system_output("/bin/df", "-B", "M", "/var");
# Loop through the output. foreach my $line (@df) { @@ -463,7 +463,7 @@ sub call_suricatactrl ($) {
# Call the suricatactrl binary and pass the "cron" command # with the requrested interval. - system("$suricatactrl $option $interval &>/dev/null"); + &General::system("$suricatactrl", "$option", "$interval");
# Return "1" - True. return 1; @@ -475,7 +475,7 @@ sub call_suricatactrl ($) { } else { # Call the suricatactrl binary and pass the requrested # option to it. - system("$suricatactrl $option &>/dev/null"); + &General::system("$suricatactrl", "$option");
# Return "1" - True. return 1; diff --git a/config/cfgroot/network-functions.pl b/config/cfgroot/network-functions.pl index 2f704dfbf..b7a840559 100644 --- a/config/cfgroot/network-functions.pl +++ b/config/cfgroot/network-functions.pl @@ -360,7 +360,7 @@ sub _get_wireless_status($) { my $intf = shift;
if (!$wireless_status{$intf}) { - $wireless_status{$intf} = `iwconfig $intf`; + $wireless_status{$intf} = &General::system_output("iwconfig", "$intf"); }
return $wireless_status{$intf}; diff --git a/config/rootfiles/common/fuse b/config/rootfiles/common/fuse index 3a0a52378..86fa084fd 100644 --- a/config/rootfiles/common/fuse +++ b/config/rootfiles/common/fuse @@ -12,7 +12,7 @@ usr/bin/fusermount3 #usr/include/fuse3/fuse_opt.h #usr/lib/libfuse3.so usr/lib/libfuse3.so.3 -usr/lib/libfuse3.so.3.10.3 +usr/lib/libfuse3.so.3.10.4 #usr/lib/pkgconfig/fuse3.pc #usr/share/man/man1/fusermount3.1 #usr/share/man/man8/mount.fuse3.8 diff --git a/config/rootfiles/common/glib b/config/rootfiles/common/glib index bbfa11b5d..d3973a99d 100644 --- a/config/rootfiles/common/glib +++ b/config/rootfiles/common/glib @@ -294,19 +294,19 @@ #usr/lib/glib-2.0/include/glibconfig.h #usr/lib/libgio-2.0.so usr/lib/libgio-2.0.so.0 -usr/lib/libgio-2.0.so.0.6800.2 +usr/lib/libgio-2.0.so.0.6800.3 #usr/lib/libglib-2.0.so usr/lib/libglib-2.0.so.0 -usr/lib/libglib-2.0.so.0.6800.2 +usr/lib/libglib-2.0.so.0.6800.3 #usr/lib/libgmodule-2.0.so usr/lib/libgmodule-2.0.so.0 -usr/lib/libgmodule-2.0.so.0.6800.2 +usr/lib/libgmodule-2.0.so.0.6800.3 #usr/lib/libgobject-2.0.so usr/lib/libgobject-2.0.so.0 -usr/lib/libgobject-2.0.so.0.6800.2 +usr/lib/libgobject-2.0.so.0.6800.3 #usr/lib/libgthread-2.0.so usr/lib/libgthread-2.0.so.0 -usr/lib/libgthread-2.0.so.0.6800.2 +usr/lib/libgthread-2.0.so.0.6800.3 #usr/lib/pkgconfig/gio-2.0.pc #usr/lib/pkgconfig/gio-unix-2.0.pc #usr/lib/pkgconfig/glib-2.0.pc @@ -326,8 +326,8 @@ usr/lib/libgthread-2.0.so.0.6800.2 #usr/share/gdb/auto-load #usr/share/gdb/auto-load/usr #usr/share/gdb/auto-load/usr/lib -#usr/share/gdb/auto-load/usr/lib/libglib-2.0.so.0.6800.2-gdb.py -#usr/share/gdb/auto-load/usr/lib/libgobject-2.0.so.0.6800.2-gdb.py +#usr/share/gdb/auto-load/usr/lib/libglib-2.0.so.0.6800.3-gdb.py +#usr/share/gdb/auto-load/usr/lib/libgobject-2.0.so.0.6800.3-gdb.py #usr/share/gettext/its #usr/share/gettext/its/gschema.its #usr/share/gettext/its/gschema.loc diff --git a/config/rootfiles/core/158/filelists/files b/config/rootfiles/core/158/filelists/files index e39449614..903ae9450 100644 --- a/config/rootfiles/core/158/filelists/files +++ b/config/rootfiles/core/158/filelists/files @@ -2,12 +2,6 @@ etc/rc.d/init.d/firewall etc/ssh/sshd_config opt/pakfire/lib/functions.pl opt/pakfire/pakfire -srv/web/ipfire/cgi-bin/dhcp.cgi -srv/web/ipfire/cgi-bin/memory.cgi -srv/web/ipfire/cgi-bin/pakfire.cgi -srv/web/ipfire/cgi-bin/traffic.cgi -srv/web/ipfire/cgi-bin/vpnmain.cgi -srv/web/ipfire/html/images/apple.png usr/lib/firewall/ipsec-policy var/ipfire/backup/bin/backup.pl var/ipfire/countries.pl diff --git a/config/rootfiles/core/158/filelists/fuse b/config/rootfiles/core/158/filelists/fuse new file mode 120000 index 000000000..570edaade --- /dev/null +++ b/config/rootfiles/core/158/filelists/fuse @@ -0,0 +1 @@ +../../../common/fuse \ No newline at end of file diff --git a/config/rootfiles/core/158/filelists/hwdata b/config/rootfiles/core/158/filelists/hwdata new file mode 120000 index 000000000..ced911666 --- /dev/null +++ b/config/rootfiles/core/158/filelists/hwdata @@ -0,0 +1 @@ +../../../common/hwdata \ No newline at end of file diff --git a/config/rootfiles/core/158/filelists/smartmontools b/config/rootfiles/core/158/filelists/smartmontools new file mode 120000 index 000000000..fb66dafef --- /dev/null +++ b/config/rootfiles/core/158/filelists/smartmontools @@ -0,0 +1 @@ +../../../common/smartmontools \ No newline at end of file diff --git a/config/rootfiles/core/158/filelists/web-user-interface b/config/rootfiles/core/158/filelists/web-user-interface new file mode 120000 index 000000000..70c74b438 --- /dev/null +++ b/config/rootfiles/core/158/filelists/web-user-interface @@ -0,0 +1 @@ +../../../common/web-user-interface \ No newline at end of file diff --git a/config/rootfiles/core/158/filelists/xfsprogs b/config/rootfiles/core/158/filelists/xfsprogs new file mode 120000 index 000000000..91032964d --- /dev/null +++ b/config/rootfiles/core/158/filelists/xfsprogs @@ -0,0 +1 @@ +../../../common/xfsprogs \ No newline at end of file diff --git a/html/cgi-bin/aliases.cgi b/html/cgi-bin/aliases.cgi index 4e61eb65e..85ed27204 100644 --- a/html/cgi-bin/aliases.cgi +++ b/html/cgi-bin/aliases.cgi @@ -567,7 +567,7 @@ sub SortDataFile # sub BuildConfiguration { # Restart service associated with this - system '/usr/local/bin/setaliases'; + &General::system('/usr/local/bin/setaliases'); }
# diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi index 683f8add4..84c015314 100644 --- a/html/cgi-bin/backup.cgi +++ b/html/cgi-bin/backup.cgi @@ -54,7 +54,7 @@ $cgiparams{'BACKUPLOGS'} = ''; ############################################################################################################################ ################################################ Workaround for Directories ################################################
-system("/usr/local/bin/backupctrl makedirs >/dev/null 2>&1 ") unless ( -e '/var/ipfire/backup/addons/backup') ; +&General::system("/usr/local/bin/backupctrl", "makedirs") unless ( -e '/var/ipfire/backup/addons/backup') ;
############################################################################################################################ ############################################## System calls ohne Http Header ############################################### @@ -85,7 +85,7 @@ if ($cgiparams{'ACTION'} eq "download") { print UPLOADFILE; } close UPLOADFILE; - system("/usr/local/bin/backupctrl restore >/dev/null 2>&1"); + &General::system("/usr/local/bin/backupctrl", "restore"); } elsif ( $cgiparams{'ACTION'} eq "restoreaddon" ) { @@ -99,7 +99,7 @@ elsif ( $cgiparams{'ACTION'} eq "restoreaddon" ) print UPLOADFILE; } close UPLOADFILE; - system("/usr/local/bin/backupctrl restoreaddon ".$temp[$#temp]." >/dev/null 2>&1"); + &General::system("/usr/local/bin/backupctrl", "restoreaddon", $temp[$#temp]); }
&Header::showhttpheaders(); @@ -115,11 +115,11 @@ sub refreshpage{&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' cont if ( $cgiparams{'ACTION'} eq "backup" ) { if ( $cgiparams{'BACKUPLOGS'} eq "include" ) { - system("/usr/local/bin/backupctrl include >/dev/null 2>&1"); + &General::system("/usr/local/bin/backupctrl", "include"); } elsif ( $cgiparams{'BACKUPLOGS'} eq "exclude" ) { - system("/usr/local/bin/backupctrl exclude >/dev/null 2>&1"); + &General::system("/usr/local/bin/backupctrl", "exclude"); } elsif ( $cgiparams{'BACKUPLOGS'} eq "iso" ) { - system("/usr/local/bin/backupctrl iso >/dev/null 2>&1"); + &General::system("/usr/local/bin/backupctrl", "iso"); } } if ( $cgiparams{'ACTION'} eq "addonbackup" ) @@ -130,14 +130,14 @@ if ( $cgiparams{'ACTION'} eq "addonbackup" ) # Check if the addon exists exit(1) unless (-e "/var/ipfire/backup/addons/includes/$cgiparams{'ADDON'}");
- system("/usr/local/bin/backupctrl addonbackup $cgiparams{'ADDON'} >/dev/null 2>&1"); + &General::system("/usr/local/bin/backupctrl", "addonbackup", "$cgiparams{'ADDON'}"); } elsif ( $cgiparams{'ACTION'} eq "delete" ) { my $file = &sanitise_file($cgiparams{'FILE'}); exit(1) unless defined($file);
- system("/usr/local/bin/backupctrl $file >/dev/null 2>&1"); + &General::system("/usr/local/bin/backupctrl", "$file"); }
############################################################################################################################ diff --git a/html/cgi-bin/captive.cgi b/html/cgi-bin/captive.cgi index 51c5d45f2..ce666381c 100755 --- a/html/cgi-bin/captive.cgi +++ b/html/cgi-bin/captive.cgi @@ -64,7 +64,7 @@ my $errormessage=''; my $clients="${General::swroot}/captive/clients"; my %clientshash=(); my $settingsfile="${General::swroot}/captive/settings"; -unless (-e $settingsfile) { system("touch $settingsfile"); } +unless (-e $settingsfile) { &General::system("touch $settingsfile"); }
&Header::getcgihash(%cgiparams);
diff --git a/html/cgi-bin/connections.cgi b/html/cgi-bin/connections.cgi index 8613b9d9b..00038f1a0 100644 --- a/html/cgi-bin/connections.cgi +++ b/html/cgi-bin/connections.cgi @@ -146,6 +146,9 @@ if ($netsettings{'RED_DEV'}) { } }
+# Call safe system_output function to get all available routes. +my @all_routes = &General::system_output("/sbin/route", "-n"); + # Add Green Firewall Interface push(@network, $netsettings{'GREEN_ADDRESS'}); push(@masklen, "255.255.255.255" ); @@ -157,7 +160,7 @@ push(@masklen, $netsettings{'GREEN_NETMASK'} ); push(@colour, ${Header::colourgreen} );
# Add Green Routes to Array -my @routes = `/sbin/route -n | /bin/grep $netsettings{'GREEN_DEV'}`; +my @routes = grep (/$netsettings{'GREEN_DEV'}/, @all_routes); foreach my $route (@routes) { chomp($route); my @temp = split(/[\t ]+/, $route); @@ -178,7 +181,7 @@ if ($netsettings{'BLUE_DEV'}) { push(@colour, ${Header::colourblue} );
# Add Blue Routes to Array - @routes = `/sbin/route -n | /bin/grep $netsettings{'BLUE_DEV'}`; + @routes = grep(/$netsettings{'BLUE_DEV'}/, @all_routes); foreach my $route (@routes) { chomp($route); my @temp = split(/[\t ]+/, $route); @@ -199,7 +202,7 @@ if ($netsettings{'ORANGE_DEV'}) { push(@masklen, $netsettings{'ORANGE_NETMASK'} ); push(@colour, ${Header::colourorange} ); # Add Orange Routes to Array - @routes = `/sbin/route -n | /bin/grep $netsettings{'ORANGE_DEV'}`; + @routes = grep(/$netsettings{'ORANGE_DEV'}/, @all_routes); foreach my $route (@routes) { chomp($route); my @temp = split(/[\t ]+/, $route); diff --git a/html/cgi-bin/ddns.cgi b/html/cgi-bin/ddns.cgi index 7e4ddb5b7..e30aa3d4f 100644 --- a/html/cgi-bin/ddns.cgi +++ b/html/cgi-bin/ddns.cgi @@ -342,7 +342,7 @@ if ($settings{'ACTION'} eq $Lang::tr{'edit'}) { # Handle forced updates. # if ($settings{'ACTION'} eq $Lang::tr{'instant update'}) { - system(@ddnsprog) == 0 or die "@ddnsprog failed: $?\n"; + &General::system(@ddnsprog) == 0 or die "@ddnsprog failed: $?\n"; }
# diff --git a/html/cgi-bin/dhcp.cgi b/html/cgi-bin/dhcp.cgi index 388c4d240..f1fbfd235 100644 --- a/html/cgi-bin/dhcp.cgi +++ b/html/cgi-bin/dhcp.cgi @@ -130,6 +130,15 @@ open(FILE, "$filename2") or die 'Unable to open fixed leases file.'; our @current2 = <FILE>; close(FILE);
+# Open and read-in file which contains the list of allowed advanced options. +open(FILE, $filename3) or die "Could not open $filename3. $!\n"; + +# Grab file content. +my @advoptions_list = <FILE>; + +# Close file handle. +close(FILE); + # Check Settings1 first because they are needed by &buildconf if ($dhcpsettings{'ACTION'} eq $Lang::tr{'save'}) { foreach my $itf (@ITFs) { @@ -338,7 +347,7 @@ if ($dhcpsettings{'ACTION'} eq $Lang::tr{'add'}.'1' && map ($dhcpsettings{"ADVOPT_SCOPE_$_"} = 'off', @ITFs); # force global } elsif (ValidNewOption ($dhcpsettings{'ADVOPT_NAME'} . ' ' . $dhcpsettings{'ADVOPT_DATA'})) { #was a new option - } elsif (! `grep "$option $dhcpsettings{'ADVOPT_NAME'} " $filename3`) { + } elsif (! grep(/option $dhcpsettings{'ADVOPT_NAME'}/, @advoptions_list)) { $errormessage=$Lang::tr{'dhcp advopt unknown'}.': '.$dhcpsettings{'ADVOPT_NAME'}; }
@@ -714,7 +723,20 @@ if ($dhcpsettings{'KEY1'} ne '') { }
#search if the 'option' is in the list and print the syntax model -my $opt = `grep "$option $dhcpsettings{'ADVOPT_NAME'} " $filename3`; +my $opt; + +# Check if a advanced option name is set. +if ($dhcpsettings{'ADVOPT_NAME'}) { + # Check if the name is part of the list and grab syntax. + my @opt = grep(/option $dhcpsettings{'ADVOPT_NAME'}/, @advoptions_list); + + # Assign array element to variable. + $opt = @opt[0]; + + # Remove newlines. + chomp($opt); +} + if ($opt ne '') { $opt =~ s/option $dhcpsettings{'ADVOPT_NAME'}/Syntax:/; # "option xyz abc" => "syntax: abc" $opt =~ s/;//; @@ -1330,7 +1352,7 @@ sub buildconf { print FILE "}\n\n"; }
- system ('/usr/bin/touch', "${General::swroot}/dhcp/enable_${lc_itf}"); + &General::system('/usr/bin/touch', "${General::swroot}/dhcp/enable_${lc_itf}"); &General::log("DHCP on ${itf}: " . $Lang::tr{'dhcp server enabled'}) } else { unlink "${General::swroot}/dhcp/enable_${lc_itf}"; @@ -1357,9 +1379,9 @@ sub buildconf { } print FILE "include "${General::swroot}/dhcp/dhcpd.conf.local";\n"; close FILE; - if ( $dhcpsettings{"ENABLE_GREEN"} eq 'on' || $dhcpsettings{"ENABLE_BLUE"} eq 'on' ) {system '/usr/local/bin/dhcpctrl enable >/dev/null 2>&1';} - else {system '/usr/local/bin/dhcpctrl disable >/dev/null 2>&1';} - system '/usr/local/bin/dhcpctrl restart >/dev/null 2>&1 &'; + if ( $dhcpsettings{"ENABLE_GREEN"} eq 'on' || $dhcpsettings{"ENABLE_BLUE"} eq 'on' ) {&General::system('/usr/local/bin/dhcpctrl', 'enable');} + else {&General::system('/usr/local/bin/dhcpctrl', 'disable');} + &General::system_background('/usr/local/bin/dhcpctrl', 'restart'); }
# diff --git a/html/cgi-bin/dns.cgi b/html/cgi-bin/dns.cgi index 7dc113582..0a34d3fd6 100755 --- a/html/cgi-bin/dns.cgi +++ b/html/cgi-bin/dns.cgi @@ -48,8 +48,8 @@ my $settings_file = "${General::swroot}/dns/settings"; my $servers_file = "${General::swroot}/dns/servers";
# Create files if the does not exist. -unless (-f $settings_file) { system("touch $settings_file") }; -unless (-f $servers_file) { system("touch $servers_file") }; +unless (-f $settings_file) { &General::system("touch", "$settings_file") }; +unless (-f $servers_file) { &General::system("touch", "$servers_file") };
# File which stores the ISP assigned DNS servers. my @ISP_nameserver_files = ( "/var/run/dns1", "/var/run/dns2" ); @@ -844,7 +844,7 @@ sub _handle_unbound_and_more () { &IDS::call_suricatactrl("restart"); } # Restart unbound - system('/usr/local/bin/unboundctrl reload >/dev/null'); + &General::system('/usr/local/bin/unboundctrl', 'reload'); }
# Check if the system is online (RED is connected). diff --git a/html/cgi-bin/dnsforward.cgi b/html/cgi-bin/dnsforward.cgi index 749d1216a..e2843a81f 100644 --- a/html/cgi-bin/dnsforward.cgi +++ b/html/cgi-bin/dnsforward.cgi @@ -124,7 +124,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'add'}) } } # Restart unbound - system('/usr/local/bin/unboundctrl reload >/dev/null'); + &General::system('/usr/local/bin/unboundctrl', 'reload'); }
### @@ -142,7 +142,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'remove'}) } close(FILE); # Restart unbound. - system('/usr/local/bin/unboundctrl reload >/dev/null'); + &General::system('/usr/local/bin/unboundctrl', 'reload'); }
### @@ -169,7 +169,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'toggle enable disable'}) } close(FILE); # Restart unbound. - system('/usr/local/bin/unboundctrl reload >/dev/null'); + &General::system('/usr/local/bin/unboundctrl', 'reload'); }
### diff --git a/html/cgi-bin/extrahd.cgi b/html/cgi-bin/extrahd.cgi index aaf42baff..154efd7b2 100644 --- a/html/cgi-bin/extrahd.cgi +++ b/html/cgi-bin/extrahd.cgi @@ -53,8 +53,8 @@ my $partitionsfile = "/var/ipfire/extrahd/partitions"; my @dummy = ( ${Header::colourgreen}, ${Header::colourred} ); undef (@dummy);
-system("/usr/local/bin/extrahdctrl scanhd ide >/dev/null"); -system("/usr/local/bin/extrahdctrl scanhd partitions >/dev/null"); +&General::system("/usr/local/bin/extrahdctrl", "scanhd", "ide"); +&General::system("/usr/local/bin/extrahdctrl", "scanhd", "partitions");
&Header::showhttpheaders();
@@ -98,12 +98,12 @@ if ($extrahdsettings{'ACTION'} eq $Lang::tr{'add'}) UUID=$extrahdsettings{'UUID'};$extrahdsettings{'FS'};$extrahdsettings{'PATH'}; END ; - system("/usr/local/bin/extrahdctrl mount $extrahdsettings{'PATH'}"); + &General::system("/usr/local/bin/extrahdctrl", "mount", "$extrahdsettings{'PATH'}"); } } elsif ($extrahdsettings{'ACTION'} eq $Lang::tr{'delete'}) { - if ( `/usr/local/bin/extrahdctrl umount $extrahdsettings{'PATH'}` ) { + if ( &General::system("/usr/local/bin/extrahdctrl", "umount", "$extrahdsettings{'PATH'}")) { open( FILE, "< $devicefile" ) or die "Unable to read $devicefile"; @tmp = <FILE>; close FILE; @@ -143,7 +143,11 @@ END { @deviceline = split( /;/, $deviceentry ); my $color="$Header::colourred"; - if ( ! `/bin/mountpoint $deviceline[2] | grep " not "` ) { + + # Use safe system_output to get mountpoint details. + my @mountpoint = &General::system_output("/bin/mountpoint", "$deviceline[2]"); + + if ( ! grep(/not/, @mountpoint)) { $color=$Header::colourgreen; } print <<END diff --git a/html/cgi-bin/fireinfo.cgi b/html/cgi-bin/fireinfo.cgi index dfc741fde..e0221c5be 100644 --- a/html/cgi-bin/fireinfo.cgi +++ b/html/cgi-bin/fireinfo.cgi @@ -49,14 +49,18 @@ if ( -e "$configfile" ) { if ("$fireinfosettings{'ACTION'}" eq "trigger") { if ($fireinfosettings{'ENABLE_FIREINFO'} eq 'off') { &General::log($Lang::tr{'fireinfo is enabled'}); - system ('/usr/bin/touch', $configfile); + + # Write empty configfile. + open(FILE, ">$configfile"); + close(FILE); + $fireinfosettings{'ENABLE_FIREINFO'} = 'on'; } else { &General::log($Lang::tr{'fireinfo is disabled'}); unlink "$configfile"; $fireinfosettings{'ENABLE_FIREINFO'} = 'off'; } - system("/usr/local/bin/fireinfoctrl &"); + &General::system_background("/usr/local/bin/fireinfoctrl"); }
&Header::openpage('Fireinfo', 1, ''); @@ -84,9 +88,13 @@ if ($errormessage) { &Header::closebox(); }
-my $ipfire_version = `cat /etc/system-release`; +# Get IPFire version string. +open(FILE, "/etc/system-release"); +my $ipfire_version = <FILE>; +close(FILE); + my $pakfire_version = &Pakfire::make_version(); -my $kernel_version = `uname -a`; +my $kernel_version = &General::system_output("uname", "-a");
&Header::openbox('100%', 'left', $Lang::tr{'fireinfo system version'}); print <<END; @@ -108,12 +116,16 @@ END &Header::closebox();
# Read pregenerated profile data -my $profile = `cat /var/ipfire/fireinfo/profile`; +open(FILE, "/var/ipfire/fireinfo/profile"); +my @profile = <FILE>; +close(FILE);
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";
# Read profile ID from file -my $profile_id = `cat /var/ipfire/fireinfo/public_id`; +open(FILE, "/var/ipfire/fireinfo/public_id"); +my $profile_id = <FILE>; +close(FILE); chomp($profile_id);
&Header::openbox('100%', 'left', $Lang::tr{'fireinfo settings'}); @@ -157,7 +169,7 @@ print <<END; </tr> <tr> <td colspan='2'> - <textarea rows="25" cols="75" readonly="readonly">$profile</textarea> + <textarea rows="25" cols="75" readonly="readonly">@profile</textarea> </td> </tr> </table> diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi index 4f4d63cc8..70dee8d3c 100644 --- a/html/cgi-bin/firewall.cgi +++ b/html/cgi-bin/firewall.cgi @@ -38,11 +38,11 @@ require "${General::swroot}/header.pl"; require "${General::swroot}/location-functions.pl"; require "/usr/lib/firewall/firewall-lib.pl";
-unless (-d "${General::swroot}/firewall") { system("mkdir ${General::swroot}/firewall"); } -unless (-e "${General::swroot}/firewall/settings") { system("touch ${General::swroot}/firewall/settings"); } -unless (-e "${General::swroot}/firewall/config") { system("touch ${General::swroot}/firewall/config"); } -unless (-e "${General::swroot}/firewall/input") { system("touch ${General::swroot}/firewall/input"); } -unless (-e "${General::swroot}/firewall/outgoing") { system("touch ${General::swroot}/firewall/outgoing"); } +unless (-d "${General::swroot}/firewall") { &General::system("mkdir", "${General::swroot}/firewall"); } +unless (-e "${General::swroot}/firewall/settings") { &General::system("touch", "${General::swroot}/firewall/settings"); } +unless (-e "${General::swroot}/firewall/config") { &General::system("touch", "${General::swroot}/firewall/config"); } +unless (-e "${General::swroot}/firewall/input") { &General::system("touch", "${General::swroot}/firewall/input"); } +unless (-e "${General::swroot}/firewall/outgoing") { &General::system("touch", "${General::swroot}/firewall/outgoing"); }
my %fwdfwsettings=(); my %selected=() ; diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi index 84b018459..35611ac08 100644 --- a/html/cgi-bin/fwhosts.cgi +++ b/html/cgi-bin/fwhosts.cgi @@ -75,12 +75,12 @@ my $fwoptions = "${General::swroot}/optionsfw/settings"; my $configovpn = "${General::swroot}/ovpn/settings"; my $configipsecrw = "${General::swroot}/vpn/settings";
-unless (-e $confignet) { system("touch $confignet"); } -unless (-e $confighost) { system("touch $confighost"); } -unless (-e $configgrp) { system("touch $configgrp"); } -unless (-e $configsrv) { system("touch $configsrv"); } -unless (-e $configsrvgrp) { system("touch $configsrvgrp"); } -unless (-e $configlocationgrp) { system("touch $configlocationgrp"); } +unless (-e $confignet) { &General::system("touch", "$confignet"); } +unless (-e $confighost) { &General::system("touch", "$confighost"); } +unless (-e $configgrp) { &General::system("touch", "$configgrp"); } +unless (-e $configsrv) { &General::system("touch", "$configsrv"); } +unless (-e $configsrvgrp) { &General::system("touch", "$configsrvgrp"); } +unless (-e $configlocationgrp) { &General::system("touch $configlocationgrp"); }
&General::readhash("${General::swroot}/main/settings", %mainsettings); &General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", %color); diff --git a/html/cgi-bin/gpl.cgi b/html/cgi-bin/gpl.cgi index be1ea2639..140fd2178 100644 --- a/html/cgi-bin/gpl.cgi +++ b/html/cgi-bin/gpl.cgi @@ -60,7 +60,19 @@ END ; if ( -e "/usr/share/doc/licenses/GPLv3" ) { print '<textarea rows='25' cols='75' readonly='readonly'>'; - print `cat /usr/share/doc/licenses/GPLv3`; + + # Open and read-in GPL file content. + open(FILE, "/usr/share/doc/licenses/GPLv3"); + + # Grab license. + my @license = <FILE>; + + # Close filehandle. + close(FILE); + + # Print license to textarea. + print "@license"; + print '</textarea>'; } else { diff --git a/html/cgi-bin/guardian.cgi b/html/cgi-bin/guardian.cgi index 552c67211..8ffe57f11 100644 --- a/html/cgi-bin/guardian.cgi +++ b/html/cgi-bin/guardian.cgi @@ -67,8 +67,8 @@ my $settingsfile = "${General::swroot}/guardian/settings"; my $ignoredfile = "${General::swroot}/guardian/ignored";
# Create empty settings and ignoredfile if they do not exist yet. -unless (-e "$settingsfile") { system("touch $settingsfile"); } -unless (-e "$ignoredfile") { system("touch $ignoredfile"); } +unless (-e "$settingsfile") { &General::system("touch", "$settingsfile"); } +unless (-e "$ignoredfile") { &General::system("touch", "$ignoredfile"); }
our %settings = (); our %ignored = (); @@ -878,7 +878,7 @@ sub BuildConfiguration() { my $configfile = "${General::swroot}/guardian/guardian.conf";
# Create the configfile if none exists yet. - unless (-e "$configfile") { system("touch $configfile"); } + unless (-e "$configfile") { &General::system("touch", "$configfile"); }
# Open configfile for writing. open(FILE, ">$configfile"); @@ -940,11 +940,11 @@ sub BuildConfiguration() { &Guardian::Socket::Client("reload"); } else { # Launch guardian. - system("/usr/local/bin/addonctrl guardian start &>/dev/null"); + &General::system("/usr/local/bin/addonctrl", "guardian", "start"); } } else { # Stop the daemon. - system("/usr/local/bin/addonctrl guardian stop &>/dev/null"); + &General::system("/usr/local/bin/addonctrl", "guardian", "stop"); } }
@@ -955,7 +955,7 @@ sub GenerateIgnoreFile() { &General::readhasharray($ignoredfile, %ignored);
# Create the guardian.ignore file if not exist yet. - unless (-e "$ignorefile") { system("touch $ignorefile"); } + unless (-e "$ignorefile") { &General::system("touch", "$ignorefile"); }
# Open ignorefile for writing. open(FILE, ">$ignorefile"); diff --git a/html/cgi-bin/gui.cgi b/html/cgi-bin/gui.cgi index 1b316a2a2..820296fe2 100644 --- a/html/cgi-bin/gui.cgi +++ b/html/cgi-bin/gui.cgi @@ -70,7 +70,7 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") # Set flag if index page is to refresh whilst ppp is up. # Default is NO refresh. if ($cgiparams{'REFRESHINDEX'} ne 'off') { - system ('/usr/bin/touch', "${General::swroot}/main/refreshindex"); + &General::system('/usr/bin/touch', "${General::swroot}/main/refreshindex"); } else { unlink "${General::swroot}/main/refreshindex"; } @@ -78,7 +78,7 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") # Beep on ip-up or ip-down. Default is ON. if ($cgiparams{'PPPUPDOWNBEEP'} ne 'on') { $cgiparams{'PPPUPDOWNBEEP'} = 'off'; - system ('/usr/bin/touch', "${General::swroot}/red/nobeeps"); + &General::system('/usr/bin/touch', "${General::swroot}/red/nobeeps"); } else { unlink "${General::swroot}/red/nobeeps"; } diff --git a/html/cgi-bin/hardwaregraphs.cgi b/html/cgi-bin/hardwaregraphs.cgi index 813d32f7b..e8f0fa362 100644 --- a/html/cgi-bin/hardwaregraphs.cgi +++ b/html/cgi-bin/hardwaregraphs.cgi @@ -38,12 +38,55 @@ my %mainsettings = (); my %sensorsettings = ();
my @sensorsgraphs = (); -my @sensorsdir = `ls -dA $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/`; -foreach (@sensorsdir){ - chomp($_);chop($_); - foreach (`ls $_/*`){ - chomp($_); - push(@sensorsgraphs,$_); + +# Main directory where rrdlog puts the sensor data. +my $sensorsdir = "$mainsettings{'RRDLOG'}/collectd/localhost"; + +# Open sensors directory. +opendir(SENSORS, "$sensorsdir") or die "Could not opendir $sensorsdir: $!\n"; + +# Read-in all sensors. +my @sensor_dirs = readdir(SENSORS); + +# Close directory handle. +closedir(SENSORS); + +# Loop through the grabbed sensors. +foreach my $sensor_dir (@sensor_dirs) { + # Skip everything which does not start with "sensors-". + next unless $sensor_dir =~ /^sensors-/; + + # Check if the omitet element is a directory. + next unless (-d "$sensorsdir/$sensor_dir"); + + # Open sensor directory and lookup for sensors. + opendir(SENSOR_DIR, "$sensorsdir/$sensor_dir") or die "Could not opendir $sensorsdir/$sensor_dir: $!\n"; + + # Grab single sensors from the directory. + my @sensors = readdir(SENSOR_DIR); + + # Close directory handle. + closedir(SENSOR_DIR); + + # Loop through the omited sensors. + foreach my $sensor (@sensors) { + # Skip everything which is not a regular file. + next unless (-f "$sensorsdir/$sensor_dir/$sensor"); + + # Add sensor to the array of sensorsgrapghs. + push(@sensorsgraphs, "$sensorsdir/$sensor_dir/$sensor"); + } +} + +# Look for ACPI Thermal Zone sensors. +my @thermal_zone_sensors = grep(/thermal-thermal_zone/, @sensor_dirs); + +# If a thermal zone sensor has been found add it to the sensorsgraphs array. +if (@thermal_zone_sensors) { + # Loop through the array of thermal zone sensors. + foreach my $thermal_zone_sensor (@thermal_zone_sensors) { + # Add the sensor to the array. + push(@sensorsgraphs, "$sensorsdir/$thermal_zone_sensor"); } }
@@ -97,7 +140,9 @@ if ( $querry[0] =~ "hwtemp"){ &General::writehash("${General::swroot}/sensors/settings", %sensorsettings); }
- my @disks = `ls -1 /sys/block | grep -E '^sd|^nvme' | sort | uniq`; + # This should be save, because no user given content will be processed. + #my @disks = `ls -1 /sys/block | grep -E '^sd|^nvme' | sort | uniq`; + my @disks = &get_disks();
foreach (@disks){ my $disk = $_; @@ -109,31 +154,31 @@ if ( $querry[0] =~ "hwtemp"){ &Header::closebox(); }
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/thermal-thermal_zone* 2>/dev/null` ) { + if ( grep(/thermal-thermal_zone/, @sensorsgraphs) ) { &Header::openbox('100%', 'center', "ACPI Thermal-Zone Temp $Lang::tr{'graph'}"); &Graphs::makegraphbox("hardwaregraphs.cgi","thermaltemp","day"); &Header::closebox(); }
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/temperature-* 2>/dev/null` ) { + if ( grep(/temperature-/, @sensorsgraphs) ) { &Header::openbox('100%', 'center', "hwtemp $Lang::tr{'graph'}"); &Graphs::makegraphbox("hardwaregraphs.cgi","hwtemp","day"); Header::closebox(); }
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/fanspeed-* 2>/dev/null` ) { + if ( grep(/fanspeed-/, @sensorsgraphs) ) { &Header::openbox('100%', 'center', "hwfan $Lang::tr{'graph'}"); &Graphs::makegraphbox("hardwaregraphs.cgi","hwfan","day"); &Header::closebox(); }
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-*/voltage-* 2>/dev/null` ) { + if ( grep(/voltage-/, @sensorsgraphs) ) { &Header::openbox('100%', 'center', "hwvolt $Lang::tr{'graph'}"); &Graphs::makegraphbox("hardwaregraphs.cgi","hwvolt","day"); &Header::closebox(); }
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/sensors-* 2>/dev/null` ) { + if ( @sensorsgraphs ) { sensorsbox(); } &Header::closebigbox(); @@ -175,3 +220,40 @@ END ; &Header::closebox(); } + +sub get_disks () { + my @disks; + + # Open virtal sys FS and grab block devices. + opendir(SYS, "/sys/block") or die "Could not opendir /sys/block/: $!\n"; + + # Grab all available block devices. + my @blockdevs = readdir(SYS); + + # Close directory handle. + closedir(SYS); + + # Loop through the array of blockdevs. + foreach my $dev (@blockdevs) { + # Skip all devices which does not start with "sd" or "nvme". + next unless (( $dev =~ /^sd/) || ($dev =~ /^nvme/)); + + # Add the device to the array of disks. + push(@disks, $dev); + } + + # Remove duplicates. + my @disks = &uniq(@disks); + + # Sort the array. + my @disks = sort(@disks); + + # Return the array. + return @disks; +} + +# Tiny code snipped to get a uniq() like function. +sub uniq { + my %seen; + return grep { !$seen{$_}++ } @_; +} diff --git a/html/cgi-bin/hosts.cgi b/html/cgi-bin/hosts.cgi index d9e9cb0af..a99d1364a 100644 --- a/html/cgi-bin/hosts.cgi +++ b/html/cgi-bin/hosts.cgi @@ -487,6 +487,6 @@ sub SortDataFile # Build the configuration file # sub BuildConfiguration { - system '/usr/local/bin/rebuildhosts'; - system '/usr/local/bin/unboundctrl reload &>/dev/null'; + &General::system('/usr/local/bin/rebuildhosts'); + &General::system('/usr/local/bin/unboundctrl', 'reload'); } diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi index 4ac237d0f..fafbe0aa1 100644 --- a/html/cgi-bin/index.cgi +++ b/html/cgi-bin/index.cgi @@ -118,10 +118,10 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'dial profile'}) }
if ($cgiparams{'ACTION'} eq $Lang::tr{'dial'}) { - system('/usr/local/bin/redctrl start > /dev/null') == 0 + &General::system('/usr/local/bin/redctrl', 'start') == 0 or &General::log("Dial failed: $?"); sleep 1; }elsif ($cgiparams{'ACTION'} eq $Lang::tr{'hangup'}) { - system('/usr/local/bin/redctrl stop > /dev/null') == 0 + &General::system('/usr/local/bin/redctrl', 'stop') == 0 or &General::log("Hangup failed: $?"); sleep 1; }
diff --git a/html/cgi-bin/mac.cgi b/html/cgi-bin/mac.cgi index 161be3421..f4c5aa2d4 100644 --- a/html/cgi-bin/mac.cgi +++ b/html/cgi-bin/mac.cgi @@ -94,7 +94,7 @@ if ($macsettings{'ACTION'} eq $Lang::tr{'save'}) { } } if ($macsettings{'ACTION'} eq $Lang::tr{'reconnect'}) { - system("/usr/local/bin/redctrl restart >/dev/null 2>&1 &"); + &General::system_background("/usr/local/bin/redctrl", "restart"); &Header::openbox('100%', 'left', $Lang::tr{'mac address recon'} ); print "<font class='base'>$Lang::tr{'mac address done'}</font>\n"; &Header::closebox(); @@ -107,7 +107,7 @@ if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) { } if ($macsettings{'ACTION'} eq $Lang::tr{'reboot'}) { &General::log($Lang::tr{'rebooting ipfire'}); - system("/usr/local/bin/ipfirereboot boot"); + &General::system("/usr/local/bin/ipfirereboot", "boot"); &Header::openbox('100%', 'left', $Lang::tr{'rebooting ipfire'} ); print " <img src='/images/indicator.gif' /><br /><br />"; print "<meta http-equiv='refresh' content='120;'>"; diff --git a/html/cgi-bin/mdstat.cgi b/html/cgi-bin/mdstat.cgi index d476e074d..9ee2b15a1 100644 --- a/html/cgi-bin/mdstat.cgi +++ b/html/cgi-bin/mdstat.cgi @@ -42,7 +42,13 @@ my %mainsettings = (); &Header::openbox('100%', 'left',"MD Raid State");
print '<textarea rows="25" cols="80" readonly="readonly">'; -print `cat "/proc/mdstat"`; + +# Grab mdstat status. +open(MDSTAT, "/proc/mdstat"); +my @mdstat = <MDSTAT>; +close(MDSTAT); +print "@mdstat"; + print '</textarea>';
&Header::closebox(); diff --git a/html/cgi-bin/memory.cgi b/html/cgi-bin/memory.cgi index 89fa7d14a..dea7e3668 100644 --- a/html/cgi-bin/memory.cgi +++ b/html/cgi-bin/memory.cgi @@ -56,7 +56,7 @@ if ( $querry[0] =~ "memory"){ &Graphs::makegraphbox("memory.cgi","memory","day"); &Header::closebox();
- if ( `ls $mainsettings{'RRDLOG'}/collectd/localhost/swap 2>/dev/null` ) { + if (-f $mainsettings{'RRDLOG'}/collectd/localhost/swap) { &Header::openbox('100%', 'center', "Swap $Lang::tr{'graph'}"); &Graphs::makegraphbox("memory.cgi","swap","day"); &Header::closebox(); diff --git a/html/cgi-bin/modem.cgi b/html/cgi-bin/modem.cgi index a13f8b265..bf5080d01 100644 --- a/html/cgi-bin/modem.cgi +++ b/html/cgi-bin/modem.cgi @@ -57,7 +57,7 @@ ERROR:
if ($modemsettings{'ACTION'} eq $Lang::tr{'restore defaults'}) { - system('/bin/cp', "${General::swroot}/modem/defaults", "${General::swroot}/modem/settings", '-f'); + &General::system("cp", "-f", "${General::swroot}/modem/defaults", "${General::swroot}/modem/settings"); }
&General::readhash("${General::swroot}/modem/settings", %modemsettings); diff --git a/html/cgi-bin/mpfire.cgi b/html/cgi-bin/mpfire.cgi index c8cfc4b11..ea83d1db1 100644 --- a/html/cgi-bin/mpfire.cgi +++ b/html/cgi-bin/mpfire.cgi @@ -231,7 +231,7 @@ if ( $mpfiresettings{'ACTION'} eq "scan" ){ $mpd->updatedb(); refreshpage(); }elsif ( $mpfiresettings{'ACTION'} eq "playweb" ){ - $message=system("/usr/local/bin/mpfirectrl","playweb",""$mpfiresettings{'FILE'}"","2>/dev/null"); + $message= &General::system_output("/usr/local/bin/mpfirectrl","playweb",""$mpfiresettings{'FILE'}""); }elsif ( $mpfiresettings{'ACTION'} eq "playlist" ){ $mpd->play(); }elsif ( $mpfiresettings{'ACTION'} eq "emptyplaylist" ){ diff --git a/html/cgi-bin/netexternal.cgi b/html/cgi-bin/netexternal.cgi index a31502dd0..1e3760c2b 100644 --- a/html/cgi-bin/netexternal.cgi +++ b/html/cgi-bin/netexternal.cgi @@ -86,8 +86,7 @@ if ( $querry[0] ne~ ""){
&General::readhash("${General::swroot}/dhcpc/dhcpcd-$netsettings{'RED_DEV'}.info", %dhcpinfo);
- my $DNS1=`echo $dhcpinfo{'domain_name_servers'} | cut -f 1 -d " "`; - my $DNS2=`echo $dhcpinfo{'domain_name_servers'} | cut -f 2 -d " "`; + my ($DNS1, $DNS2) = split(/ /, $dhcpinfo{'domain_name_servers'});
my $lsetme=0; my $leasetime=""; diff --git a/html/cgi-bin/optionsfw.cgi b/html/cgi-bin/optionsfw.cgi index 321642e82..1ecf4f180 100644 --- a/html/cgi-bin/optionsfw.cgi +++ b/html/cgi-bin/optionsfw.cgi @@ -49,7 +49,7 @@ if ($settings{'ACTION'} eq $Lang::tr{'save'}) { if ($settings{'defpol'} ne '1'){ $errormessage .= $Lang::tr{'new optionsfw later'}; &General::writehash($filename, %settings); # Save good settings - system("/usr/local/bin/firewallctrl"); + &General::system("/usr/local/bin/firewallctrl"); }else{ if ($settings{'POLICY'} ne ''){ $fwdfwsettings{'POLICY'} = $settings{'POLICY'}; @@ -64,7 +64,7 @@ if ($settings{'ACTION'} eq $Lang::tr{'save'}) { $fwdfwsettings{'POLICY1'} = "$MODE1"; &General::writehash("${General::swroot}/firewall/settings", %fwdfwsettings); &General::readhash("${General::swroot}/firewall/settings", %fwdfwsettings); - system("/usr/local/bin/firewallctrl"); + &General::system("/usr/local/bin/firewallctrl"); } &General::readhash($filename, %settings); # Load good settings } diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index b98d88529..077f5ab6c 100644 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -192,10 +192,10 @@ sub newcleanssldatabase close FILE; } if (! -s ">${General::swroot}/ovpn/certs/index.txt") { - system ("touch ${General::swroot}/ovpn/certs/index.txt"); + &General::system("touch", "${General::swroot}/ovpn/certs/index.txt"); } if (! -s ">${General::swroot}/ovpn/certs/index.txt.attr") { - system ("touch ${General::swroot}/ovpn/certs/index.txt.attr"); + &General::system("touch", "${General::swroot}/ovpn/certs/index.txt.attr"); } unlink ("${General::swroot}/ovpn/certs/index.txt.old"); unlink ("${General::swroot}/ovpn/certs/index.txt.attr.old"); @@ -220,18 +220,21 @@ sub pkiconfigcheck { # Warning if DH parameter is 1024 bit if (-f "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}") { - my $dhparameter = `/usr/bin/openssl dhparam -text -in ${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}`; - my @dhbit = ($dhparameter =~ /(\d+)/); - if ($1 < 2048) { - $cryptoerror = "$Lang::tr{'ovpn error dh'}"; - goto CRYPTO_ERROR; + my @dhparameter = &General::system_output("/usr/bin/openssl", "dhparam", "-text", "-in", "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}"); + + foreach my $line (@dhparameter) { + my @dhbit = ($line =~ /(\d+)/); + if ($1 < 2048) { + $cryptoerror = "$Lang::tr{'ovpn error dh'}"; + goto CRYPTO_ERROR; + } } }
# Warning if md5 is in usage if (-f "${General::swroot}/ovpn/certs/servercert.pem") { - my $signature = `/usr/bin/openssl x509 -noout -text -in ${General::swroot}/ovpn/certs/servercert.pem`; - if ($signature =~ /md5WithRSAEncryption/) { + my @signature = &General::system_output("/usr/bin/openssl", "x509", "-noout", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem"); + if (grep(/md5WithRSAEncryption/, @signature) ) { $cryptoerror = "$Lang::tr{'ovpn error md5'}"; goto CRYPTO_ERROR; } @@ -241,8 +244,8 @@ sub pkiconfigcheck
# Warning if certificate is not compliant to RFC3280 TLS rules if (-f "${General::swroot}/ovpn/certs/servercert.pem") { - my $extendkeyusage = `/usr/bin/openssl x509 -noout -text -in ${General::swroot}/ovpn/certs/servercert.pem`; - if ($extendkeyusage !~ /TLS Web Server Authentication/) { + my @extendkeyusage = &General::system_output("/usr/bin/openssl", "x509", "-noout", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem"); + if ( ! grep(/TLS Web Server Authentication/, @extendkeyusage)) { $cryptowarning = "$Lang::tr{'ovpn warning rfc3280'}"; goto CRYPTO_WARNING; } @@ -734,7 +737,7 @@ sub writecollectdconf { close(COLLECTDVPN);
# Reload collectd afterwards - system("/usr/local/bin/collectdctrl restart &>/dev/null"); + &General::system("/usr/local/bin/collectdctrl", "restart"); }
#hier die refresh page @@ -764,11 +767,11 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'start ovpn server'} || #start openvpn server if ($cgiparams{'ACTION'} eq $Lang::tr{'start ovpn server'}){ &emptyserverlog(); - system('/usr/local/bin/openvpnctrl', '-s'); + &General::system("/usr/local/bin/openvpnctrl", "-s"); } #stop openvpn server if ($cgiparams{'ACTION'} eq $Lang::tr{'stop ovpn server'}){ - system('/usr/local/bin/openvpnctrl', '-k'); + &General::system("/usr/local/bin/openvpnctrl", "-k"); &emptyserverlog(); } # #restart openvpn server @@ -1075,8 +1078,8 @@ unless(-d "${General::swroot}/ovpn/n2nconf/$cgiparams{'NAME'}"){mkdir "${General # Check host certificate if X509 is RFC3280 compliant. # If not, old --ns-cert-type directive will be used. # If appropriate key usage extension exists, new --remote-cert-tls directive will be used. - my $hostcert = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`; - if ($hostcert !~ /TLS Web Server Authentication/) { + my @hostcert = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem"); + if ( ! grep(/TLS Web Server Authentication/, @hostcert)) { print CLIENTCONF "ns-cert-type server\n"; } else { print CLIENTCONF "remote-cert-tls server\n"; @@ -1196,7 +1199,8 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg # 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"); + # This system call is safe, because all arguements are passed as an array. + system("/usr/sbin/openvpn", "--genkey", "--secret", "${General::swroot}/ovpn/certs/ta.key"); if ($?) { $errormessage = "$Lang::tr{'openssl produced an error'}: $?"; goto SETTINGS_ERROR; @@ -1219,9 +1223,24 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg $vpnsettings{'TLSAUTH'} = $cgiparams{'TLSAUTH'}; #wrtie enable
- if ( $vpnsettings{'ENABLED_BLUE'} eq 'on' ) {system("touch ${General::swroot}/ovpn/enable_blue 2>/dev/null");}else{system("unlink ${General::swroot}/ovpn/enable_blue 2>/dev/null");} - if ( $vpnsettings{'ENABLED_ORANGE'} eq 'on' ) {system("touch ${General::swroot}/ovpn/enable_orange 2>/dev/null");}else{system("unlink ${General::swroot}/ovpn/enable_orange 2>/dev/null");} - if ( $vpnsettings{'ENABLED'} eq 'on' ) {system("touch ${General::swroot}/ovpn/enable 2>/dev/null");}else{system("unlink ${General::swroot}/ovpn/enable 2>/dev/null");} + if ( $vpnsettings{'ENABLED_BLUE'} eq 'on' ) { + &General::system("touch", "${General::swroot}/ovpn/enable_blue"); + } else { + unlink(${General::swroot}/ovpn/enable_blue); + } + + if ( $vpnsettings{'ENABLED_ORANGE'} eq 'on' ) { + &General::system("touch", "${General::swroot}/ovpn/enable_orange"); + } else { + unlink("${General::swroot}/ovpn/enable_orange"); + } + + if ( $vpnsettings{'ENABLED'} eq 'on' ) { + &General::system("touch", "${General::swroot}/ovpn/enable"); + } else { + unlink("${General::swroot}/ovpn/enable"); + } + #new settings for daemon &General::writehash("${General::swroot}/ovpn/settings", %vpnsettings); &writeserverconf();#hier ok @@ -1234,7 +1253,7 @@ SETTINGS_ERROR: &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", %confighash);
# Kill all N2N connections - system("/usr/local/bin/openvpnctrl -kn2n &>/dev/null"); + &General::system("/usr/local/bin/openvpnctrl", "-kn2n");
foreach my $key (keys %confighash) { my $name = $confighash{$cgiparams{'$key'}}[1]; @@ -1243,7 +1262,7 @@ SETTINGS_ERROR: delete $confighash{$cgiparams{'$key'}}; }
- system ("/usr/local/bin/openvpnctrl -drrd $name &>/dev/null"); + &General::system("/usr/local/bin/openvpnctrl", "-drrd", "$name"); } while ($file = glob("${General::swroot}/ovpn/ca/*")) { unlink $file; @@ -1282,7 +1301,7 @@ SETTINGS_ERROR: close FILE; } while ($file = glob("${General::swroot}/ovpn/n2nconf/*")) { - system ("rm -rf $file"); + unlink($file); }
# Remove everything from the collectd configuration @@ -1328,7 +1347,8 @@ END unlink "${General::swroot}/ovpn/ca/$cgiparams{'DH_NAME'}"; } # Create Diffie Hellmann Parameter - system('/usr/bin/openssl', 'dhparam', '-out', "${General::swroot}/ovpn/ca/dh1024.pem", "$cgiparams{'DHLENGHT'}"); + # The system call is safe, because all arguments are passed as an array. + system("/usr/bin/openssl", "dhparam", "-out", "${General::swroot}/ovpn/ca/dh1024.pem", "$cgiparams{'DHLENGHT'}"); if ($?) { $errormessage = "$Lang::tr{'openssl produced an error'}: $?"; unlink ("${General::swroot}/ovpn/ca/dh1024.pem"); @@ -1397,8 +1417,8 @@ END $errormessage = $!; goto UPLOADCA_ERROR; } - my $temp = `/usr/bin/openssl dhparam -text -in $filename`; - if ($temp !~ /DH Parameters: ((2048|3072|4096) bit)/) { + my @temp = &General::system_output("/usr/bin/openssl", "dhparam", "-text", "-in", "$filename"); + if ( ! grep(/DH Parameters: ((2048|3072|4096) bit)/, @temp)) { $errormessage = $Lang::tr{'not a valid dh key'}; unlink ($filename); goto UPLOADCA_ERROR; @@ -1454,8 +1474,8 @@ END $errormessage = $!; goto UPLOADCA_ERROR; } - my $temp = `/usr/bin/openssl x509 -text -in $filename`; - if ($temp !~ /CA:TRUE/i) { + my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "$filename"); + if ( ! grep(/CA:TRUE/i, @temp )) { $errormessage = $Lang::tr{'not a valid ca certificate'}; unlink ($filename); goto UPLOADCA_ERROR; @@ -1468,11 +1488,19 @@ END } }
- my $casubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/$cgiparams{'CA_NAME'}cert.pem`; - $casubject =~ /Subject: (.*)[\n]/; - $casubject = $1; - $casubject =~ s+/Email+, E+; - $casubject =~ s/ ST=/ S=/; + @casubject = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/ca/$cgiparams{'CA_NAME'}cert.pem"); + my $casubject; + + foreach my $line (@casubject) { + if ($line =~ /Subject: (.*)[\n]/) { + $casubject = $1; + $casubject =~ s+/Email+, E+; + $casubject =~ s/ ST=/ S=/; + + last; + } + } + $casubject = &Header::cleanhtml($casubject);
my $key = &General::findhasharraykey (%cahash); @@ -1494,9 +1522,9 @@ END &Header::openpage($Lang::tr{'ovpn'}, 1, ''); &Header::openbigbox('100%', 'LEFT', '', $errormessage); &Header::openbox('100%', 'LEFT', "$Lang::tr{'ca certificate'}:"); - my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`; - $output = &Header::cleanhtml($output,"y"); - print "<pre>$output</pre>\n"; + my @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.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(); @@ -1515,7 +1543,10 @@ END if ( -f "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) { print "Content-Type: application/octet-stream\r\n"; print "Content-Disposition: filename=$cahash{$cgiparams{'KEY'}}[0]cert.pem\r\n\r\n"; - print `/usr/bin/openssl x509 -in ${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`; + + my @tmp = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem"); + print "@tmp"; + exit(0); } else { $errormessage = $Lang::tr{'invalid key'}; @@ -1530,8 +1561,8 @@ END
if ( -f "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) { foreach my $key (keys %confighash) { - my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem`; - if ($test =~ /: OK/) { + my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem", "${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem"); + if (grep(/: OK/, @test)) { # Delete connection # if ($vpnsettings{'ENABLED'} eq 'on' || # $vpnsettings{'ENABLED_BLUE'} eq 'on') { @@ -1561,8 +1592,8 @@ END my $assignedcerts = 0; if ( -f "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) { foreach my $key (keys %confighash) { - my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem`; - if ($test =~ /: OK/) { + my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ovpn/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem", "${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem"); + if (grep(/: OK/, @test)) { $assignedcerts++; } } @@ -1601,19 +1632,19 @@ END ### }elsif ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'} || $cgiparams{'ACTION'} eq $Lang::tr{'show host certificate'}) { - my $output; + my @output; &Header::showhttpheaders(); &Header::openpage($Lang::tr{'ovpn'}, 1, ''); &Header::openbigbox('100%', 'LEFT', '', ''); if ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'}) { &Header::openbox('100%', 'LEFT', "$Lang::tr{'root certificate'}:"); - $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/cacert.pem`; + @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/ca/cacert.pem"); } else { &Header::openbox('100%', 'LEFT', "$Lang::tr{'host certificate'}:"); - $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`; + @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem"); } - $output = &Header::cleanhtml($output,"y"); - print "<pre>$output</pre>\n"; + @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(); @@ -1627,7 +1658,10 @@ END if ( -f "${General::swroot}/ovpn/ca/cacert.pem" ) { print "Content-Type: application/octet-stream\r\n"; print "Content-Disposition: filename=cacert.pem\r\n\r\n"; - print `/usr/bin/openssl x509 -in ${General::swroot}/ovpn/ca/cacert.pem`; + + my @tmp = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ovpn/ca/cacert.pem"); + print "@tmp"; + exit(0); }
@@ -1638,7 +1672,10 @@ END if ( -f "${General::swroot}/ovpn/certs/servercert.pem" ) { print "Content-Type: application/octet-stream\r\n"; print "Content-Disposition: filename=servercert.pem\r\n\r\n"; - print `/usr/bin/openssl x509 -in ${General::swroot}/ovpn/certs/servercert.pem`; + + my @tmp = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ovpn/certs/servercert.pem"); + print "@tmp"; + exit(0); }
@@ -1649,7 +1686,13 @@ END if ( -f "${General::swroot}/ovpn/certs/ta.key" ) { print "Content-Type: application/octet-stream\r\n"; print "Content-Disposition: filename=ta.key\r\n\r\n"; - print `/bin/cat ${General::swroot}/ovpn/certs/ta.key`; + + open(FILE, "${General::swroot}/ovpn/certs/ta.key"); + my @tmp = <FILE>; + close(FILE); + + print "@tmp"; + exit(0); }
@@ -1926,6 +1969,7 @@ END } # Sign the host certificate request + # This system call is safe, because all argeuments are passed as an array. system('/usr/bin/openssl', 'ca', '-days', '999999', '-batch', '-notext', '-in', "${General::swroot}/ovpn/certs/serverreq.pem", @@ -1947,6 +1991,7 @@ END }
# Create an empty CRL + # System call is safe, because all arguments are passed as array. system('/usr/bin/openssl', 'ca', '-gencrl', '-out', "${General::swroot}/ovpn/crls/cacrl.pem", '-config', "${General::swroot}/ovpn/openssl/ovpn.cnf" ); @@ -1962,6 +2007,7 @@ END # &cleanssldatabase(); } # Create ta.key for tls-auth + # This system call is safe, because all arguments are passed as an array. system('/usr/sbin/openvpn', '--genkey', '--secret', "${General::swroot}/ovpn/certs/ta.key"); if ($?) { $errormessage = "$Lang::tr{'openssl produced an error'}: $?"; @@ -1969,6 +2015,7 @@ END goto ROOTCERT_ERROR; } # Create Diffie Hellmann Parameter + # The system call is safe, because all arguments are passed as an array. system('/usr/bin/openssl', 'dhparam', '-out', "${General::swroot}/ovpn/ca/dh1024.pem", "$cgiparams{'DHLENGHT'}"); if ($?) { $errormessage = "$Lang::tr{'openssl produced an error'}: $?"; @@ -2083,7 +2130,7 @@ END }
ROOTCERT_SUCCESS: - system ("chmod 600 ${General::swroot}/ovpn/certs/serverkey.pem"); + &General::system("chmod", "600", "${General::swroot}/ovpn/certs/serverkey.pem"); # if ($vpnsettings{'ENABLED'} eq 'on' || # $vpnsettings{'ENABLE_BLUE'} eq 'on') { # system('/usr/local/bin/ipsecctrl', 'S'); @@ -2101,8 +2148,12 @@ END
&General::readhash("${General::swroot}/ovpn/settings", %vpnsettings); &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", %confighash); -# my $n2nactive = ''; - my $n2nactive = `/bin/ps ax|grep $confighash{$cgiparams{'KEY'}}[1]|grep -v grep|awk '{print $1}'`; + my $n2nactive = ''; + my @ps = &General::system_output("/bin/ps", "ax"); + + if(grep(/$confighash{$cgiparams{'KEY'}}[1]/, @ps)) { + $n2nactive = "1"; + }
if ($confighash{$cgiparams{'KEY'}}) { if ($confighash{$cgiparams{'KEY'}}[0] eq 'off') { @@ -2110,7 +2161,7 @@ END &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", %confighash);
if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){ - system('/usr/local/bin/openvpnctrl', '-sn2n', $confighash{$cgiparams{'KEY'}}[1]); + &General::system("/usr/local/bin/openvpnctrl", "-sn2n", "$confighash{$cgiparams{'KEY'}}[1]"); &writecollectdconf(); } } else { @@ -2120,7 +2171,7 @@ END
if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){ if ($n2nactive ne '') { - system('/usr/local/bin/openvpnctrl', '-kn2n', $confighash{$cgiparams{'KEY'}}[1]); + &General::system("/usr/local/bin/openvpnctrl", "-kn2n", "$confighash{$cgiparams{'KEY'}}[1]"); &writecollectdconf(); }
@@ -2204,8 +2255,8 @@ if ($confighash{$cgiparams{'KEY'}}[3] eq 'net'){ # Check host certificate if X509 is RFC3280 compliant. # If not, old --ns-cert-type directive will be used. # If appropriate key usage extension exists, new --remote-cert-tls directive will be used. - my $hostcert = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`; - if ($hostcert !~ /TLS Web Server Authentication/) { + my @hostcert = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem"); + if (! grep(/TLS Web Server Authentication/, @hostcert)) { print CLIENTCONF "ns-cert-type server\n"; } else { print CLIENTCONF "remote-cert-tls server\n"; @@ -2315,6 +2366,7 @@ else $zip->addFile("${General::swroot}/ovpn/ca/cacert.pem", "cacert.pem") or die "Can't add file cacert.pem\n";
# Extract the certificate + # This system call is safe, because all arguments are passed as an array. system('/usr/bin/openssl', 'pkcs12', '-in', "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12", '-clcerts', '-nokeys', '-nodes', '-out', "$file_crt" , '-passin', 'pass:'); if ($?) { @@ -2325,6 +2377,7 @@ else print CLIENTCONF ";cert $confighash{$cgiparams{'KEY'}}[1].pem\r\n";
# Extract the key + # This system call is safe, because all arguments are passed as an array. system('/usr/bin/openssl', 'pkcs12', '-in', "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12", '-nocerts', '-nodes', '-out', "$file_key", '-passin', 'pass:'); if ($?) { @@ -2361,8 +2414,8 @@ else # Check host certificate if X509 is RFC3280 compliant. # If not, old --ns-cert-type directive will be used. # If appropriate key usage extension exists, new --remote-cert-tls directive will be used. - my $hostcert = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`; - if ($hostcert !~ /TLS Web Server Authentication/) { + my @hostcert = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem"); + if (! grep(/TLS Web Server Authentication/, @hostcert)) { print CLIENTCONF "ns-cert-type server\r\n"; } else { print CLIENTCONF "remote-cert-tls server\r\n"; @@ -2464,8 +2517,8 @@ else
if ($confighash{$cgiparams{'KEY'}}) { # Revoke certificate if certificate was deleted and rewrite the CRL - my $temp = `/usr/bin/openssl ca -revoke ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`; - my $tempA = `/usr/bin/openssl ca -gencrl -out ${General::swroot}/ovpn/crls/cacrl.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`; + &General::system("/usr/bin/openssl", "ca", "-revoke", "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem", "-config", "${General::swroot}/ovpn/openssl/ovpn.cnf)"; + &General::system("/usr/bin/openssl", "ca", "-gencrl", "-out", "${General::swroot}/ovpn/crls/cacrl.pem", "-config", "${General::swroot}/ovpn/openssl/ovpn.cnf");
### # m.a.d net2net @@ -2473,7 +2526,7 @@ else
if ($confighash{$cgiparams{'KEY'}}[3] eq 'net') { # Stop the N2N connection before it is removed - system('/usr/local/bin/openvpnctrl', '-kn2n', $confighash{$cgiparams{'KEY'}}[1]); + &General::system("/usr/local/bin/openvpnctrl", "-kn2n", "$confighash{$cgiparams{'KEY'}}[1]");
my $conffile = glob("${General::swroot}/ovpn/n2nconf/$confighash{$cgiparams{'KEY'}}[1]/$confighash{$cgiparams{'KEY'}}[1].conf"); my $certfile = glob("${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12"); @@ -2515,10 +2568,10 @@ else # CCD end # Update collectd configuration and delete all RRD files of the removed connection &writecollectdconf(); - system ('/usr/local/bin/openvpnctrl', '-drrd', $confighash{$cgiparams{'KEY'}}[1]); + &General::system("/usr/local/bin/openvpnctrl", "-drrd", "$confighash{$cgiparams{'KEY'}}[1]");
delete $confighash{$cgiparams{'KEY'}}; - my $temp2 = `/usr/bin/openssl ca -gencrl -out ${General::swroot}/ovpn/crls/cacrl.pem -config ${General::swroot}/ovpn/openssl/ovpn.cnf`; + &General::system("/usr/bin/openssl", "ca", "-gencrl", "-out", "${General::swroot}/ovpn/crls/cacrl.pem", "-config", "${General::swroot}/ovpn/openssl/ovpn.cnf"); &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", %confighash);
} else { @@ -2534,7 +2587,12 @@ else
print "Content-Disposition: filename=" . $confighash{$cgiparams{'KEY'}}[1] . ".p12\r\n"; print "Content-Type: application/octet-stream\r\n\r\n"; - print `/bin/cat ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12`; + + open(FILE, "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1].p12"); + my @tmp = <FILE>; + close(FILE); + + print "@tmp"; exit (0);
### @@ -2548,9 +2606,9 @@ else &Header::openpage($Lang::tr{'ovpn'}, 1, ''); &Header::openbigbox('100%', 'LEFT', '', ''); &Header::openbox('100%', 'LEFT', "$Lang::tr{'certificate'}:"); - my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`; - $output = &Header::cleanhtml($output,"y"); - print "<pre>$output</pre>\n"; + my @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.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(); @@ -2570,9 +2628,9 @@ else &Header::openpage($Lang::tr{'ovpn'}, 1, ''); &Header::openbigbox('100%', 'LEFT', '', ''); &Header::openbox('100%', 'LEFT', "$Lang::tr{'dh'}:"); - my $output = `/usr/bin/openssl dhparam -text -in ${General::swroot}/ovpn/ca/dh1024.pem`; - $output = &Header::cleanhtml($output,"y"); - print "<pre>$output</pre>\n"; + my @output = &General::system_output("/usr/bin/openssl", "dhparam", "-text", "-in", "${General::swroot}/ovpn/ca/dh1024.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(); @@ -2592,9 +2650,13 @@ else &Header::openpage($Lang::tr{'ovpn'}, 1, ''); &Header::openbigbox('100%', 'LEFT', '', ''); &Header::openbox('100%', 'LEFT', "$Lang::tr{'ta key'}:"); - my $output = `/bin/cat ${General::swroot}/ovpn/certs/ta.key`; - $output = &Header::cleanhtml($output,"y"); - print "<pre>$output</pre>\n"; + + open(FILE, "${General::swroot}/ovpn/certs/ta.key"); + my @output = <FILE>; + close(FILE); + + @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(); @@ -2615,9 +2677,9 @@ else &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"; + my @output = &General::system_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(); @@ -3105,7 +3167,12 @@ END if ( -f "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem") { print "Content-Disposition: filename=" . $confighash{$cgiparams{'KEY'}}[1] . "cert.pem\r\n"; print "Content-Type: application/octet-stream\r\n\r\n"; - print `/bin/cat ${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`; + + open(FILE, "${General::swroot}/ovpn/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem"); + my @tmp = <FILE>; + close(FILE); + + print "@tmp"; exit (0); }
@@ -4031,6 +4098,7 @@ if ($cgiparams{'TYPE'} eq 'net') {
# Sign the certificate request and move it # Sign the host certificate request + # The system call is safe, because all arguments are passed as an array. system('/usr/bin/openssl', 'ca', '-days', "$cgiparams{'DAYS_VALID'}", '-batch', '-notext', '-in', $filename, @@ -4047,11 +4115,19 @@ if ($cgiparams{'TYPE'} eq 'net') { &deletebackupcert(); }
- my $temp = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem`; - $temp =~ /Subject:.*CN\s?=\s?(.*)[\n]/; - $temp = $1; - $temp =~ s+/Email+, E+; - $temp =~ s/ ST=/ S=/; + my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem"); + my $temp; + + foreach my $line (@temp) { + if ($line =~ /Subject:.*CN\s?=\s?(.*)[\n]/) { + $temp = $1; + $temp =~ s+/Email+, E+; + $temp =~ s/ ST=/ S=/; + + last; + } + } + $cgiparams{'CERT_NAME'} = $temp; $cgiparams{'CERT_NAME'} =~ s/,//g; $cgiparams{'CERT_NAME'} =~ s/'//g; @@ -4077,13 +4153,13 @@ if ($cgiparams{'TYPE'} eq 'net') {
# Verify the certificate has a valid CA and move it my $validca = 0; - my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ovpn/ca/cacert.pem $filename`; - if ($test =~ /: OK/) { + my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ovpn/ca/cacert.pem", "$filename"); + if (grep(/: OK/, @test)) { $validca = 1; } else { foreach my $key (keys %cahash) { - $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ovpn/ca/$cahash{$key}[0]cert.pem $filename`; - if ($test =~ /: OK/) { + @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ovpn/ca/$cahash{$key}[0]cert.pem", "$filename"); + if (grep(/: OK/, @test)) { $validca = 1; } } @@ -4101,11 +4177,19 @@ if ($cgiparams{'TYPE'} eq 'net') { } }
- my $temp = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem`; - $temp =~ /Subject:.*CN\s?=\s?(.*)[\n]/; - $temp = $1; - $temp =~ s+/Email+, E+; - $temp =~ s/ ST=/ S=/; + my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem"); + my $temp; + + foreach my $line (@temp) { + if ($line =~ /Subject:.*CN\s?=\s?(.*)[\n]/) { + $temp = $1; + $temp =~ s+/Email+, E+; + $temp =~ s/ ST=/ S=/; + + last; + } + } + $cgiparams{'CERT_NAME'} = $temp; $cgiparams{'CERT_NAME'} =~ s/,//g; $cgiparams{'CERT_NAME'} =~ s/'//g; @@ -4232,6 +4316,7 @@ if ($cgiparams{'TYPE'} eq 'net') { } # Sign the host certificate request + # The system call is safe, because all arguments are passed as an array. system('/usr/bin/openssl', 'ca', '-days', "$cgiparams{'DAYS_VALID'}", '-batch', '-notext', '-in', "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}req.pem", @@ -4250,6 +4335,7 @@ if ($cgiparams{'TYPE'} eq 'net') { }
# Create the pkcs12 file + # The system call is safe, because all arguments are passed as an array. system('/usr/bin/openssl', 'pkcs12', '-export', '-inkey', "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}key.pem", '-in', "${General::swroot}/ovpn/certs/$cgiparams{'NAME'}cert.pem", @@ -4415,21 +4501,24 @@ if ($cgiparams{'TYPE'} eq 'net') { if ($cgiparams{'TYPE'} eq 'net') { - if (-e "/var/run/$confighash{$key}[1]n2n.pid") { - system('/usr/local/bin/openvpnctrl', '-kn2n', $confighash{$cgiparams{'KEY'}}[1]); + if (-e "/var/run/$confighash{$key}[1]n2n.pid") { + &General::system("/usr/local/bin/openvpnctrl", "-kn2n", "$confighash{$cgiparams{'KEY'}}[1]"); - &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", %confighash); - my $key = $cgiparams{'KEY'}; - if (! $key) { - $key = &General::findhasharraykey (%confighash); - foreach my $i (0 .. 31) { $confighash{$key}[$i] = "";} - } - $confighash{$key}[0] = 'on'; - &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", %confighash); + &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", %confighash); + my $key = $cgiparams{'KEY'}; + if (! $key) { + $key = &General::findhasharraykey (%confighash); + foreach my $i (0 .. 31) { + $confighash{$key}[$i] = ""; + } + } + + $confighash{$key}[0] = 'on'; + &General::writehasharray("${General::swroot}/ovpn/ovpnconfig", %confighash);
- system('/usr/local/bin/openvpnctrl', '-sn2n', $confighash{$cgiparams{'KEY'}}[1]); - } - } + &General::system("/usr/local/bin/openvpnctrl", "-sn2n", "$confighash{$cgiparams{'KEY'}}[1]"); + } + }
### # m.a.d n2n end @@ -5046,7 +5135,9 @@ END &General::readhasharray("${General::swroot}/ovpn/caconfig", %cahash); &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", %confighash);
- my @status = `/bin/cat /var/run/ovpnserver.log`; + open(FILE, "/var/run/ovpnserver.log"); + my @status = <FILE>; + close(FILE);
if ($cgiparams{'VPN_IP'} eq '' && -e "${General::swroot}/red/active") { if (open(IPADDR, "${General::swroot}/red/local-ipaddress")) { @@ -5358,9 +5449,17 @@ END #} else { #print "<td align='left'> </td>"; #} - my $cavalid = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem`; - $cavalid =~ /Not After : (.*)[\n]/; - $cavalid = $1; + my @cavalid = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/$confighash{$key}[1]cert.pem"); + my $cavalid; + + foreach my $line (@cavalid) { + if ($line =~ /Not After : (.*)[\n]/) { + $cavalid = $1; + + last; + } + } + print "<td align='center' $col>$confighash{$key}[25]</td>"; $col1="bgcolor='${Header::colourred}'"; my $active = "<b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b>"; @@ -5571,11 +5670,19 @@ END my $col4="bgcolor='$color{'color20'}'";
if (-f "${General::swroot}/ovpn/ca/cacert.pem") { - my $casubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/ca/cacert.pem`; - $casubject =~ /Subject: (.*)[\n]/; - $casubject = $1; - $casubject =~ s+/Email+, E+; - $casubject =~ s/ ST=/ S=/; + my @casubject = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/ca/cacert.pem"); + my $casubject; + + foreach my $line (@casubject) { + if ($line =~ /Subject: (.*)[\n]/) { + $casubject = $1; + $casubject =~ s+/Email+, E+; + $casubject =~ s/ ST=/ S=/; + + last; + } + } + print <<END; <tr> <td class='base' $col1>$Lang::tr{'root certificate'}</td> @@ -5605,11 +5712,18 @@ END }
if (-f "${General::swroot}/ovpn/certs/servercert.pem") { - my $hostsubject = `/usr/bin/openssl x509 -text -in ${General::swroot}/ovpn/certs/servercert.pem`; - $hostsubject =~ /Subject: (.*)[\n]/; - $hostsubject = $1; - $hostsubject =~ s+/Email+, E+; - $hostsubject =~ s/ ST=/ S=/; + my @hostsubject = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ovpn/certs/servercert.pem"); + my $hostsubject; + + foreach my $line (@hostsubject) { + if ($line =~ /Subject: (.*)[\n]/) { + $hostsubject = $1; + $hostsubject =~ s+/Email+, E+; + $hostsubject =~ s/ ST=/ S=/; + + last; + } + }
print <<END; <tr> @@ -5641,10 +5755,16 @@ END
# Adding DH parameter to chart if (-f "${General::swroot}/ovpn/ca/dh1024.pem") { - my $dhsubject = `/usr/bin/openssl dhparam -text -in ${General::swroot}/ovpn/ca/dh1024.pem`; - $dhsubject =~ / (.*)[\n]/; - $dhsubject = $1; + my @dhsubject = &System_output("/usr/bin/openssl", "dhparam", "-text", "-in", "${General::swroot}/ovpn/ca/dh1024.pem"); + my $dhsubject;
+ foreach my $line (@dhsubject) { + if ($line =~ / (.*)[\n]/) { + $dhsubject = $1; + + last; + } + }
print <<END; <tr> @@ -5674,9 +5794,19 @@ END
# Adding ta.key to chart if (-f "${General::swroot}/ovpn/certs/ta.key") { - my $tasubject = `/bin/cat ${General::swroot}/ovpn/certs/ta.key`; - $tasubject =~ /# (.*)[\n]/; - $tasubject = $1; + open(FILE, "${General::swroot}/ovpn/certs/ta.key"); + my @tasubject = <FILE>; + close(FILE); + + my $tasubject; + foreach my $line (@tasubject) { + if($line =~ /# (.*)[\n]/) { + $tasubject = $1; + + last; + } + } + print <<END;
<tr> diff --git a/html/cgi-bin/pakfire.cgi b/html/cgi-bin/pakfire.cgi index faaeb4222..631587ce2 100644 --- a/html/cgi-bin/pakfire.cgi +++ b/html/cgi-bin/pakfire.cgi @@ -57,12 +57,10 @@ sub refreshpage{&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' cont if (($cgiparams{'ACTION'} eq 'install') && (! -e $Pakfire::lockfile)) { $cgiparams{'INSPAKS'} =~ s/|/\ /g; if ("$cgiparams{'FORCE'}" eq "on") { - my $command = "/usr/local/bin/pakfire install --non-interactive --no-colors $cgiparams{'INSPAKS'} &>/dev/null &"; - system("$command"); - system("/bin/sleep 1"); + &General::system_background("/usr/local/bin/pakfire", "install", "--non-interactive", "--no-colors", $cgiparams{'INSPAKS'}); } else { &Header::openbox("100%", "center", $Lang::tr{'request'}); - my @output = `/usr/local/bin/pakfire resolvedeps --no-colors $cgiparams{'INSPAKS'}`; + my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", $cgiparams{'INSPAKS'}); print <<END; <table><tr><td colspan='2'>$Lang::tr{'pakfire install package'}.$cgiparams{'INSPAKS'}.$Lang::tr{'pakfire possible dependency'} <pre> @@ -97,12 +95,10 @@ END
$cgiparams{'DELPAKS'} =~ s/|/\ /g; if ("$cgiparams{'FORCE'}" eq "on") { - my $command = "/usr/local/bin/pakfire remove --non-interactive --no-colors $cgiparams{'DELPAKS'} &>/dev/null &"; - system("$command"); - system("/bin/sleep 1"); + &General::system_background("/usr/local/bin/pakfire", "remove", "--non-interactive", "--no-colors", $cgiparams{'DELPAKS'}); } else { &Header::openbox("100%", "center", $Lang::tr{'request'}); - my @output = `/usr/local/bin/pakfire resolvedeps --no-colors $cgiparams{'DELPAKS'}`; + my @output = &General::system_output("/usr/local/bin/pakfire", "resolvedeps", "--no-colors", $cgiparams{'DELPAKS'}); print <<END; <table><tr><td colspan='2'>$Lang::tr{'pakfire uninstall package'}.$cgiparams{'DELPAKS'}.$Lang::tr{'pakfire possible dependency'} <pre> @@ -135,13 +131,9 @@ END }
} elsif (($cgiparams{'ACTION'} eq 'update') && (! -e $Pakfire::lockfile)) { - - system("/usr/local/bin/pakfire update --force --no-colors &>/dev/null &"); - system("/bin/sleep 1"); + &General::system_background("/usr/local/bin/pakfire", "update", "--force", "--no-colors"); } elsif (($cgiparams{'ACTION'} eq 'upgrade') && (!-e $Pakfire::lockfile)) { - my $command = "/usr/local/bin/pakfire upgrade -y --no-colors &>/dev/null &"; - system("$command"); - system("/bin/sleep 1"); + &General::system_background("/usr/local/bin/pakfire", "upgrade", "-y", "--no-colors"); } elsif ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") { $pakfiresettings{"TREE"} = $cgiparams{"TREE"};
@@ -154,7 +146,7 @@ END &General::writehash("${General::swroot}/pakfire/settings", %pakfiresettings);
# Update lists - system("/usr/local/bin/pakfire update --force --no-colors &>/dev/null &"); + &General::system_background("/usr/local/bin/pakfire", "update", "--force", "--no-colors"); } }
diff --git a/html/cgi-bin/pppsetup.cgi b/html/cgi-bin/pppsetup.cgi index 7597bfbc7..519a062bc 100644 --- a/html/cgi-bin/pppsetup.cgi +++ b/html/cgi-bin/pppsetup.cgi @@ -39,6 +39,8 @@ my %checked=(); my @profilenames=(); my $errormessage = ''; my $maxprofiles = 5; + +# This call is safe, because no user input will be processed. my $kernel=`/bin/uname -r | /usr/bin/tr -d '\012'`;
my %color = (); @@ -177,7 +179,12 @@ elsif ($pppsettings{'ACTION'} eq $Lang::tr{'save'}) $errormessage = $Lang::tr{'invalid input'}; goto ERROR; }
- if( $pppsettings{'RECONNECTION'} eq 'dialondemand' && `/bin/cat ${General::swroot}/ddns/config` =~ /,on$/m ) { + # Read-in ddns config file, to check if at least one provider is enabled. + open(FILE, "${General::swroot}/ddns/config)"; + my @ddns_config = <FILE> + close(FILE); + + if( $pppsettings{'RECONNECTION'} eq 'dialondemand' && grep(/on/, @ddns_config) ) { $errormessage = $Lang::tr{'dod not compatible with ddns'}; goto ERROR; }
@@ -520,7 +527,12 @@ print <<END END ;
-my $atmdev=`cat /proc/net/atm/devices 2>/dev/null | grep 0`; +# Read-in atm devices from proc. +open(PROC, "/proc/net/atm/devices"); +my @patm_devices = <PROC>; +close(PROC); + +my $atmdev = grep(/0/, @atm_devices); chomp ($atmdev); if ($atmdev ne '') { print <<END @@ -962,7 +974,10 @@ sub updatesettings unlink("${General::swroot}/ppp/settings"); link("${General::swroot}/ppp/settings-$pppsettings{'PROFILE'}", "${General::swroot}/ppp/settings"); - system ("/usr/bin/touch", "${General::swroot}/ppp/updatesettings"); + + # Write updatesettings file. + open(FILE, ">/${General::swroot}/ppp/updatesettings"); + close(FILE); }
sub writesecrets diff --git a/html/cgi-bin/proxy.cgi b/html/cgi-bin/proxy.cgi index b6d71db84..78ad33ad2 100644 --- a/html/cgi-bin/proxy.cgi +++ b/html/cgi-bin/proxy.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2020 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2021 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 # @@ -32,7 +32,7 @@ require "${General::swroot}/header.pl";
require "${General::swroot}/ids-functions.pl";
-my @squidversion = `/usr/sbin/squid -v`; +my @squidversion = &General::system_output("/usr/sbin/squid", "-v"); my $http_port='81'; my $https_port='444';
@@ -131,35 +131,35 @@ unless (-d "$raddir") { mkdir("$raddir"); } unless (-d "$identdir") { mkdir("$identdir"); } unless (-d "$credir") { mkdir("$credir"); }
-unless (-e $cre_groups) { system("touch $cre_groups"); } -unless (-e $cre_svhosts) { system("touch $cre_svhosts"); } - -unless (-e $userdb) { system("touch $userdb"); } -unless (-e $stdgrp) { system("touch $stdgrp"); } -unless (-e $extgrp) { system("touch $extgrp"); } -unless (-e $disgrp) { system("touch $disgrp"); } - -unless (-e $acl_src_subnets) { system("touch $acl_src_subnets"); } -unless (-e $acl_src_banned_ip) { system("touch $acl_src_banned_ip"); } -unless (-e $acl_src_banned_mac) { system("touch $acl_src_banned_mac"); } -unless (-e $acl_src_unrestricted_ip) { system("touch $acl_src_unrestricted_ip"); } -unless (-e $acl_src_unrestricted_mac) { system("touch $acl_src_unrestricted_mac"); } -unless (-e $acl_src_noaccess_ip) { system("touch $acl_src_noaccess_ip"); } -unless (-e $acl_src_noaccess_mac) { system("touch $acl_src_noaccess_mac"); } -unless (-e $acl_dst_noauth) { system("touch $acl_dst_noauth"); } -unless (-e $acl_dst_noauth_dom) { system("touch $acl_dst_noauth_dom"); } -unless (-e $acl_dst_noauth_net) { system("touch $acl_dst_noauth_net"); } -unless (-e $acl_dst_noauth_url) { system("touch $acl_dst_noauth_url"); } -unless (-e $acl_dst_nocache) { system("touch $acl_dst_nocache"); } -unless (-e $acl_dst_nocache_dom) { system("touch $acl_dst_nocache_dom"); } -unless (-e $acl_dst_nocache_net) { system("touch $acl_dst_nocache_net"); } -unless (-e $acl_dst_nocache_url) { system("touch $acl_dst_nocache_url"); } -unless (-e $acl_dst_throttle) { system("touch $acl_dst_throttle"); } -unless (-e $acl_ports_safe) { system("touch $acl_ports_safe"); } -unless (-e $acl_ports_ssl) { system("touch $acl_ports_ssl"); } -unless (-e $acl_include) { system("touch $acl_include"); } - -unless (-e $mimetypes) { system("touch $mimetypes"); } +unless (-e $cre_groups) { &General::system("touch", "$cre_groups"); } +unless (-e $cre_svhosts) { &General::system("touch $cre_svhosts"); } + +unless (-e $userdb) { &General::system("touch", "$userdb"); } +unless (-e $stdgrp) { &General::system("touch", "$stdgrp"); } +unless (-e $extgrp) { &General::system("touch", "$extgrp"); } +unless (-e $disgrp) { &General::system("touch", "$disgrp"); } + +unless (-e $acl_src_subnets) { &General::system("touch", "$acl_src_subnets"); } +unless (-e $acl_src_banned_ip) { &General::system("touch", "$acl_src_banned_ip"); } +unless (-e $acl_src_banned_mac) { &General::system("touch", "$acl_src_banned_mac"); } +unless (-e $acl_src_unrestricted_ip) { &General::system("touch", "$acl_src_unrestricted_ip"); } +unless (-e $acl_src_unrestricted_mac) { &General::system("touch", "$acl_src_unrestricted_mac"); } +unless (-e $acl_src_noaccess_ip) { &General::system("touch", "$acl_src_noaccess_ip"); } +unless (-e $acl_src_noaccess_mac) { &General::system("touch", "$acl_src_noaccess_mac"); } +unless (-e $acl_dst_noauth) { &General::system("touch", "$acl_dst_noauth"); } +unless (-e $acl_dst_noauth_dom) { &General::system("touch", "$acl_dst_noauth_dom"); } +unless (-e $acl_dst_noauth_net) { &General::system("touch", "$acl_dst_noauth_net"); } +unless (-e $acl_dst_noauth_url) { &General::system("touch", "$acl_dst_noauth_url"); } +unless (-e $acl_dst_nocache) { &General::system("touch", "$acl_dst_nocache"); } +unless (-e $acl_dst_nocache_dom) { &General::system("touch", "$acl_dst_nocache_dom"); } +unless (-e $acl_dst_nocache_net) { &General::system("touch", "$acl_dst_nocache_net"); } +unless (-e $acl_dst_nocache_url) { &General::system("touch", "$acl_dst_nocache_url"); } +unless (-e $acl_dst_throttle) { &General::system("touch", "$acl_dst_throttle"); } +unless (-e $acl_ports_safe) { &General::system("touch", "$acl_ports_safe"); } +unless (-e $acl_ports_ssl) { &General::system("touch", "$acl_ports_ssl"); } +unless (-e $acl_include) { &General::system("touch", "$acl_include"); } + +unless (-e $mimetypes) { &General::system("touch", "$mimetypes"); }
my $HAVE_NTLM_AUTH = (-e "/usr/bin/ntlm_auth");
@@ -226,8 +226,6 @@ $proxysettings{'THROTTLING_GREEN_HOST'} = 'unlimited'; $proxysettings{'THROTTLING_BLUE_TOTAL'} = 'unlimited'; $proxysettings{'THROTTLING_BLUE_HOST'} = 'unlimited'; $proxysettings{'ENABLE_MIME_FILTER'} = 'off'; -$proxysettings{'FAKE_USERAGENT'} = ''; -$proxysettings{'FAKE_REFERER'} = ''; $proxysettings{'AUTH_METHOD'} = 'none'; $proxysettings{'AUTH_REALM'} = ''; $proxysettings{'AUTH_MAX_USERIP'} = ''; @@ -385,7 +383,7 @@ if (($proxysettings{'ACTION'} eq $Lang::tr{'save'}) || ($proxysettings{'ACTION'} $errormessage = $Lang::tr{'advproxy errmsg mem cache size'}; goto ERROR; } - my @free = `/usr/bin/free`; + my @free = &General::system_output("/usr/bin/free"); $free[1] =~ m/(\d+)/; $cachemem = int $1 / 2048; if ($proxysettings{'CACHE_MEM'} > $cachemem) { @@ -632,25 +630,25 @@ ERROR:
if ($proxysettings{'CACHEMGR'} eq 'on'){&writecachemgr;}
- system ('/usr/local/bin/squidctrl', 'disable'); + &General::system ('/usr/local/bin/squidctrl', 'disable'); unlink "${General::swroot}/proxy/enable"; unlink "${General::swroot}/proxy/transparent"; unlink "${General::swroot}/proxy/enable_blue"; unlink "${General::swroot}/proxy/transparent_blue";
if ($proxysettings{'ENABLE'} eq 'on') { - system ('/usr/bin/touch', "${General::swroot}/proxy/enable"); - system ('/usr/local/bin/squidctrl', 'enable'); } + &General::system('/usr/bin/touch', "${General::swroot}/proxy/enable"); + &General::system('/usr/local/bin/squidctrl', 'enable'); } if ($proxysettings{'TRANSPARENT'} eq 'on' && $proxysettings{'ENABLE'} eq 'on') { - system ('/usr/bin/touch', "${General::swroot}/proxy/transparent"); } + &General::system('/usr/bin/touch', "${General::swroot}/proxy/transparent"); } if ($proxysettings{'ENABLE_BLUE'} eq 'on') { - system ('/usr/bin/touch', "${General::swroot}/proxy/enable_blue"); - system ('/usr/local/bin/squidctrl', 'enable'); } + &General::system('/usr/bin/touch', "${General::swroot}/proxy/enable_blue"); + &General::system('/usr/local/bin/squidctrl', 'enable'); } if ($proxysettings{'TRANSPARENT_BLUE'} eq 'on' && $proxysettings{'ENABLE_BLUE'} eq 'on') { - system ('/usr/bin/touch', "${General::swroot}/proxy/transparent_blue"); } + &General::system('/usr/bin/touch', "${General::swroot}/proxy/transparent_blue"); }
- if ($proxysettings{'ACTION'} eq $Lang::tr{'advproxy save and restart'}) { system('/usr/local/bin/squidctrl restart >/dev/null 2>&1'); } - if ($proxysettings{'ACTION'} eq $Lang::tr{'proxy reconfigure'}) { system('/usr/local/bin/squidctrl reconfigure >/dev/null 2>&1'); } + if ($proxysettings{'ACTION'} eq $Lang::tr{'advproxy save and restart'}) { &General::system('/usr/local/bin/squidctrl', 'restart'); } + if ($proxysettings{'ACTION'} eq $Lang::tr{'proxy reconfigure'}) { &General::system('/usr/local/bin/squidctrl', 'reconfigure'); }
# Check if the suricata_proxy_ports_changed flag has been set. if ($suricata_proxy_ports_changed) { @@ -665,7 +663,7 @@ ERROR:
if ($proxysettings{'ACTION'} eq $Lang::tr{'advproxy clear cache'}) { - system('/usr/local/bin/squidctrl flush >/dev/null 2>&1'); + &General::system('/usr/local/bin/squidctrl', 'flush'); }
if (!$errormessage) @@ -1629,21 +1627,6 @@ END print <<END </table>
-<hr size='1'> - -<table width='100%'> -<tr> - <td><b>$Lang::tr{'advproxy privacy'}</b></td> -</tr> -<tr> - <td class='base'>$Lang::tr{'advproxy fake useragent'}:</td> - <td class='base'>$Lang::tr{'advproxy fake referer'}:</td> -</tr> -<tr> - <td><input type='text' name='FAKE_USERAGENT' value='$proxysettings{'FAKE_USERAGENT'}' size='40%' /></td> - <td><input type='text' name='FAKE_REFERER' value='$proxysettings{'FAKE_REFERER'}' size='40%' /></td> -</tr> -</table> <hr size='1'> END ; @@ -3846,8 +3829,7 @@ END
print FILE "http_access deny all\n\n";
- if (($proxysettings{'FORWARD_IPADDRESS'} eq 'off') || ($proxysettings{'FORWARD_VIA'} eq 'off') || - (!($proxysettings{'FAKE_USERAGENT'} eq '')) || (!($proxysettings{'FAKE_REFERER'} eq ''))) + if (($proxysettings{'FORWARD_IPADDRESS'} eq 'off') || ($proxysettings{'FORWARD_VIA'} eq 'off')) { print FILE "#Strip HTTP Header\n";
@@ -3861,31 +3843,9 @@ END print FILE "request_header_access Via deny all\n"; print FILE "reply_header_access Via deny all\n"; } - if (!($proxysettings{'FAKE_USERAGENT'} eq '')) - { - print FILE "request_header_access User-Agent deny all\n"; - print FILE "reply_header_access User-Agent deny all\n"; - } - if (!($proxysettings{'FAKE_REFERER'} eq '')) - { - print FILE "request_header_access Referer deny all\n"; - print FILE "reply_header_access Referer deny all\n"; - }
print FILE "\n";
- if ((!($proxysettings{'FAKE_USERAGENT'} eq '')) || (!($proxysettings{'FAKE_REFERER'} eq ''))) - { - if (!($proxysettings{'FAKE_USERAGENT'} eq '')) - { - print FILE "header_replace User-Agent $proxysettings{'FAKE_USERAGENT'}\n"; - } - if (!($proxysettings{'FAKE_REFERER'} eq '')) - { - print FILE "header_replace Referer $proxysettings{'FAKE_REFERER'}\n"; - } - print FILE "\n"; - } }
if ($proxysettings{'SUPPRESS_VERSION'} eq 'on') { print FILE "httpd_suppress_version_string on\n\n" } diff --git a/html/cgi-bin/qos.cgi b/html/cgi-bin/qos.cgi index 1825aca11..fa566b523 100644 --- a/html/cgi-bin/qos.cgi +++ b/html/cgi-bin/qos.cgi @@ -104,7 +104,7 @@ $qossettings{'TOS'} = ''; &General::readhash("${General::swroot}/qos/settings", %qossettings); &Header::getcgihash(%qossettings);
-$qossettings{'RED_DEV'} = `cat /var/ipfire/red/iface`; +$qossettings{'RED_DEV'} = &General::get_red_interface();
my %color = (); my %mainsettings = (); @@ -232,7 +232,7 @@ END open( FILE, "< $level7file" ) or die "Unable to read $level7file"; @l7rules = <FILE>; close FILE; - system("rm $level7file"); + &General::system("rm", "$level7file"); foreach $l7ruleentry (sort @l7rules) { @l7ruleline = split( /;/, $l7ruleentry ); @@ -244,13 +244,13 @@ END close FILE; } } - open( FILE, "< $level7file" ) or system("touch $level7file");close FILE; + open( FILE, "< $level7file" ) or &General::system("touch", "$level7file");close FILE; } elsif ($qossettings{'DOLEVEL7'} eq $Lang::tr{'edit'}) { open( FILE, "< $level7file" ) or die "Unable to read $level7file"; @l7rules = <FILE>; close FILE; - system("rm $level7file"); + &General::system("rm", "$level7file"); foreach $l7ruleentry (sort @l7rules) { @l7ruleline = split( /;/, $l7ruleentry ); @@ -263,7 +263,7 @@ END } } &level7rule; - open( FILE, "< $level7file" ) or system("touch $level7file");close FILE; + open( FILE, "< $level7file" ) or &General::system("touch", "$level7file");close FILE; }
############################################################################################################################ @@ -323,7 +323,7 @@ END open( FILE, "< $portfile" ) or die "Unable to read $portfile"; @portrules = <FILE>; close FILE; - system("rm $portfile"); + &General::system("rm", "$portfile"); foreach $portruleentry (sort @portrules) { @portruleline = split( /;/, $portruleentry ); @@ -336,7 +336,7 @@ END } } &portrule; - open( FILE, "< $portfile" ) or system("touch $portfile");close FILE; + open( FILE, "< $portfile" ) or &General::system("touch", "$portfile");close FILE; }
############################################################################################################################ @@ -408,25 +408,25 @@ if ($qossettings{'ACTION'} eq $Lang::tr{'start'}) { $qossettings{'ENABLED'} = 'on'; &General::writehash("${General::swroot}/qos/settings", %qossettings); - system("/usr/local/bin/qosctrl generate >/dev/null 2>&1"); - system("/usr/local/bin/qosctrl start >/dev/null 2>&1"); - system("logger -t ipfire 'QoS started'"); + &General::system("/usr/local/bin/qosctrl", "generate"); + &General::system("/usr/local/bin/qosctrl", "start"); + &General::system("logger", "-t", "ipfire", "QoS started"); } elsif ($qossettings{'ACTION'} eq $Lang::tr{'stop'}) { $qossettings{'ENABLED'} = 'off'; &General::writehash("${General::swroot}/qos/settings", %qossettings); - system("/usr/local/bin/qosctrl stop >/dev/null 2>&1"); - system("/usr/local/bin/qosctrl generate >/dev/null 2>&1"); - system("logger -t ipfire 'QoS stopped'"); + &General::system("/usr/local/bin/qosctrl", "stop"); + &General::system("/usr/local/bin/qosctrl", "generate"); + &General::system("logger", "-t", "ipfire", "QoS stopped"); } elsif ($qossettings{'ACTION'} eq $Lang::tr{'restart'}) { if ($qossettings{'ENABLED'} eq 'on'){ - system("/usr/local/bin/qosctrl stop >/dev/null 2>&1"); - system("/usr/local/bin/qosctrl generate >/dev/null 2>&1"); - system("/usr/local/bin/qosctrl start >/dev/null 2>&1"); - system("logger -t ipfire 'QoS restarted'"); + &General::system("/usr/local/bin/qosctrl", "stop"); + &General::system("/usr/local/bin/qosctrl", "generate"); + &General::system("/usr/local/bin/qosctrl", "start"); + &General::system("logger", "-t", "ipfire", "QoS restarted"); } } elsif ($qossettings{'ACTION'} eq $Lang::tr{'save'}) @@ -530,9 +530,9 @@ END $qossettings{'ACK'} ="101"; $qossettings{'ENABLED'} = 'on'; &General::writehash("${General::swroot}/qos/settings", %qossettings); - system("/usr/local/bin/qosctrl generate >/dev/null 2>&1"); - system("/usr/local/bin/qosctrl start >/dev/null 2>&1"); - system("logger -t ipfire 'QoS started'"); + &General::system("/usr/local/bin/qosctrl", "generate"); + &General::system("/usr/local/bin/qosctrl", "start"); + &General::system("logger", "-t", "ipfire", "QoS started"); } else { $message = $Lang::tr{'qos enter bandwidths'}; } @@ -542,8 +542,8 @@ elsif ($qossettings{'ACTION'} eq $Lang::tr{'status'} ) &Header::openbox('100%', 'left', 'QoS Status'); if ($qossettings{'ENABLED'} eq 'on'){ my $output = ""; - $output = `/usr/local/bin/qosctrl status`; - $output = &Header::cleanhtml($output,"y"); + my @output = &General::system_output("/usr/local/bin/qosctrl", "status"); + $output = &Header::cleanhtml(@output[0],"y"); print "<pre>$output</pre>\n"; } else { print "$Lang::tr{'QoS not enabled'}"; } &Header::closebox(); diff --git a/html/cgi-bin/remote.cgi b/html/cgi-bin/remote.cgi index c76f5129e..2bb85851d 100644 --- a/html/cgi-bin/remote.cgi +++ b/html/cgi-bin/remote.cgi @@ -65,7 +65,7 @@ if ( (($remotesettings{'ACTION'} eq $Lang::tr{'save'}) || ($remotesettings{'ACTI { $errormessage = $Lang::tr{'ssh no auth'}; } - system ('/usr/bin/touch', "${General::swroot}/remote/enablessh"); + &General::system('/usr/bin/touch', "${General::swroot}/remote/enablessh"); } else { @@ -85,8 +85,8 @@ if ( (($remotesettings{'ACTION'} eq $Lang::tr{'save'}) || ($remotesettings{'ACTI if ( $remotesettings{'ACTION'} eq $Lang::tr{'ssh tempstart15'} || $remotesettings{'ACTION'} eq $Lang::tr{'ssh tempstart30'} ){ if ($remotesettings{'ENABLE_SSH'} eq 'off') { - system ('/usr/bin/touch', "${General::swroot}/remote/enablessh"); - system('/usr/local/bin/sshctrl'); + &General::system('/usr/bin/touch', "${General::swroot}/remote/enablessh"); + &General::system('/usr/local/bin/sshctrl'); } if ( $remotesettings{'ACTION'} eq $Lang::tr{'ssh tempstart15'} ) { $counter = 900;} elsif ( $remotesettings{'ACTION'} eq $Lang::tr{'ssh tempstart30'} ) { $counter = 1800;} @@ -254,7 +254,10 @@ sub viewkey
if ( -e $key ) { - my @temp = split(/ /,`/usr/bin/ssh-keygen -l -f $key`); + # Use safe system_output function to call ssh-keygen and get the output from the tool. + my @ssh_keygen = &General::system_output("/usr/bin/ssh-keygen", "-l", "-f", "$key"); + + my @temp = split(/ /, $ssh_keygen[0]); my $keysize = &Header::cleanhtml($temp[0],"y"); my $fingerprint = &Header::cleanhtml($temp[1],"y"); print "<tr><td><code>$key</code></td><td align='center'>$name</td><td><code>$fingerprint</code></td><td align='center'>$keysize</td></tr>\n"; @@ -264,8 +267,7 @@ sub viewkey sub printactivelogins() { # print active SSH logins (grep outpout of "who -s") - my $command = "who -s"; - my @output = `$command`; + my @output = &General::system_output("who", "-s"); chomp(@output);
my $id = 0; diff --git a/html/cgi-bin/routing.cgi b/html/cgi-bin/routing.cgi index d2d3bdd26..e69dc425a 100644 --- a/html/cgi-bin/routing.cgi +++ b/html/cgi-bin/routing.cgi @@ -474,5 +474,5 @@ sub SortDataFile # Build the configuration file # sub BuildConfiguration { - system '/usr/local/bin/rebuildroutes'; + &General::system('/usr/local/bin/rebuildroutes'); } diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi index 72e8ac63e..9289b4519 100644 --- a/html/cgi-bin/samba.cgi +++ b/html/cgi-bin/samba.cgi @@ -85,14 +85,14 @@ delete $sambasettings{'__CGI__'};delete $sambasettings{'x'};delete $sambasetting ############################################################################################################################ ############################################# Samba Rootskript aufrufe fr SU-Actions #######################################
-if ($sambasettings{'ACTION'} eq 'smbuserdisable'){system("/usr/local/bin/sambactrl smbuserdisable $sambasettings{'NAME'}");} -if ($sambasettings{'ACTION'} eq 'smbuserenable'){system("/usr/local/bin/sambactrl smbuserenable $sambasettings{'NAME'}");} -if ($sambasettings{'ACTION'} eq 'smbuseradd'){system("/usr/local/bin/sambactrl smbuseradd $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'}");} -if ($sambasettings{'ACTION'} eq 'smbchangepw'){system("/usr/local/bin/sambactrl smbchangepw $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'}");} -if ($sambasettings{'ACTION'} eq 'smbrestart'){system("/usr/local/bin/sambactrl smbrestart");} -if ($sambasettings{'ACTION'} eq 'smbstart'){system("/usr/local/bin/sambactrl smbstart");} -if ($sambasettings{'ACTION'} eq 'smbstop'){system("/usr/local/bin/sambactrl smbstop");} -if ($sambasettings{'ACTION'} eq 'smbreload'){system("/usr/local/bin/sambactrl smbreload");} +if ($sambasettings{'ACTION'} eq 'smbuserdisable'){&General::system("/usr/local/bin/sambactrl", "smbuserdisable", "$sambasettings{'NAME'}");} +if ($sambasettings{'ACTION'} eq 'smbuserenable'){&General::system("/usr/local/bin/sambactrl", "smbuserenable", "$sambasettings{'NAME'}");} +if ($sambasettings{'ACTION'} eq 'smbuseradd'){&General::system("/usr/local/bin/sambactrl", "smbuseradd", "$sambasettings{'USERNAME'}", "$sambasettings{'PASSWORD'}");} +if ($sambasettings{'ACTION'} eq 'smbchangepw'){&General::system("/usr/local/bin/sambactrl", "smbchangepw", "$sambasettings{'USERNAME'}", "$sambasettings{'PASSWORD'}");} +if ($sambasettings{'ACTION'} eq 'smbrestart'){&General::system("/usr/local/bin/sambactrl", "smbrestart");} +if ($sambasettings{'ACTION'} eq 'smbstart'){&General::system("/usr/local/bin/sambactrl", "smbstart");} +if ($sambasettings{'ACTION'} eq 'smbstop'){&General::system("/usr/local/bin/sambactrl", "smbstop");} +if ($sambasettings{'ACTION'} eq 'smbreload'){&General::system("/usr/local/bin/sambactrl", "smbreload");} if ($sambasettings{'ACTION'} eq 'join') { $message .= &joindomain($sambasettings{'USERNAME'}, $sambasettings{'PASSWORD'}); } @@ -124,7 +124,7 @@ if ($sambasettings{'ACTION'} eq 'smbsharechange') { ############################################################################################################################ ########################################### Samba Benutzer oder PC l�chen #################################################
-if ($sambasettings{'ACTION'} eq 'userdelete'){system("/usr/local/bin/sambactrl smbuserdelete $sambasettings{'NAME'}");} +if ($sambasettings{'ACTION'} eq 'userdelete'){&General::system("/usr/local/bin/sambactrl", "smbuserdelete", "$sambasettings{'NAME'}");}
############################################################################################################################ ##################################### Umsetzen der Werte von Checkboxen und Dropdowns ###################################### @@ -138,7 +138,7 @@ if ($sambasettings{'ACTION'} eq $Lang::tr{'save'}) { # Write configuration to file &writeconfiguration();
- system("/usr/local/bin/sambactrl smbreload"); + &General::system("/usr/local/bin/sambactrl", "smbreload"); }
&General::readhash("${General::swroot}/samba/settings", %sambasettings); @@ -334,11 +334,11 @@ if ($sambasettings{'ROLE'} eq 'standalone') { </tr> END
- system('/usr/local/bin/sambactrl readsmbpasswd'); + &General::system("/usr/local/bin/sambactrl", "readsmbpasswd"); open(FILE, "<${General::swroot}/samba/private/smbpasswd") or die "Can't read user file: $!"; my @users = <FILE>; close(FILE); - system('/usr/local/bin/sambactrl locksmbpasswd'); + &General::system("/usr/local/bin/sambactrl", "locksmbpasswd");
my $lines = 0; foreach $userentry (sort @users) { @@ -734,8 +734,8 @@ if ( $smb eq 'shares')
close FILE;
-system("/usr/local/bin/sambactrl smbsafeconf"); -system("/usr/local/bin/sambactrl smbreload"); +&General::system("/usr/local/bin/sambactrl", "smbsafeconf"); +&General::system("/usr/local/bin/sambactrl", "smbreload"); }
sub isrunning @@ -844,7 +844,7 @@ printable = yes END close FILE;
- system("/usr/local/bin/sambactrl smbsafeconf"); + &General::system("/usr/local/bin/sambactrl", "smbsafeconf"); }
sub joindomain { diff --git a/html/cgi-bin/services.cgi b/html/cgi-bin/services.cgi index 38b89ef1e..237475735 100644 --- a/html/cgi-bin/services.cgi +++ b/html/cgi-bin/services.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2005-2010 IPFire Team # +# Copyright (C) 2005-2021 IPFire Team # # # # 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 # @@ -141,7 +141,7 @@ END my $paramstr=$ENV{QUERY_STRING}; my @param=split(/!/, $paramstr); if ($param[1] ne ''){ - system("/usr/local/bin/addonctrl @param[0] @param[1] > /dev/null 2>&1"); + &General::system("/usr/local/bin/addonctrl", "$param[0]", "$param[1]"); }
print <<END @@ -163,6 +163,8 @@ END # Generate list of installed addon pak's opendir (DIR, "/opt/pakfire/db/installed") || die "Cannot opendir /opt/pakfire/db/installed/: $!"; my @pak = sort readdir DIR; + closedir(DIR); + foreach (@pak){ chomp($_); next unless (m/^meta-/); @@ -187,6 +189,7 @@ END print "<tr>"; $col="bgcolor='$color{'color20'}'"; } + print "<td align='left' $col width='31%'>$_</td> "; my $status = isautorun($_,$col); print "$status "; @@ -217,27 +220,54 @@ END &Header::closepage(); }
-sub isautorun{ - my $cmd = $_[0]; - my $col = $_[1]; +sub isautorun (@) { + my ($cmd, $col) = @_; + + # Init directory. + my $initdir = "/etc/rc.d/rc3.d/"; + my $status = "<td align='center' $col></td>"; - my $init = `find /etc/rc.d/rc3.d/S??${cmd} 2>/dev/null`; - chomp ($init); - if ($init ne ''){ + + # Check if autorun for the given cmd is enabled. + if ( &find_init("$cmd", "$initdir") ) { + # Adjust status. $status = "<td align='center' $col><a href='services.cgi?$_!disable'><img alt='$Lang::tr{'deactivate'}' title='$Lang::tr{'deactivate'}' src='/images/on.gif' border='0' width='16' height='16' /></a></td>"; - } - $init = `find /etc/rc.d/rc3.d/off/S??${cmd} 2>/dev/null`; - chomp ($init); - if ($init ne ''){ + } else { + # Adjust status. $status = "<td align='center' $col><a href='services.cgi?$_!enable'><img alt='$Lang::tr{'activate'}' title='$Lang::tr{'activate'}' src='/images/off.gif' border='0' width='16' height='16' /></a></td>"; }
+ # Return the status. return $status; }
-sub isrunning{ - my $cmd = $_[0]; - my $col = $_[1]; +sub find_init (@) { + my ($cmd, $dir) = @_; + + # Open given init directory. + opendir (INITDIR, "$dir") || die "Cannot opendir $dir: $!"; + + # Read-in init files from directory. + my @inits = readdir(INITDIR); + + # Close directory handle. + closedir(INITDIR); + + # Loop through the directory. + foreach my $init (@inits) { + # Check if the current processed file belongs to the given command. + if ($init =~ /S\d+\d+$cmd\z/) { + # Found, return "1" - True. + return "1"; + } + } + + # Nothing found, return nothing. + return; +} + +sub isrunning (@) { + my ($cmd, $col) = @_; my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>"; my $pid = ''; my $testcmd = ''; @@ -288,16 +318,17 @@ sub isrunning{ return $status; }
-sub isrunningaddon{ - my $cmd = $_[0]; - my $col = $_[1]; +sub isrunningaddon (@) { + my ($cmd, $col) = @_; + my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td><td colspan='2' $col></td>"; my $pid = ''; my $testcmd = ''; my $exename; my @memory;
- my $testcmd = `/usr/local/bin/addonctrl $_ status 2>/dev/null`; + my @testcmd = &General::system_output("/usr/local/bin/addonctrl", "$cmd", "status"); + my $testcmd = @testcmd[0];
if ( $testcmd =~ /is\ running/ && $testcmd !~ /is\ not\ running/){ $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td>"; diff --git a/html/cgi-bin/shutdown.cgi b/html/cgi-bin/shutdown.cgi index 998f9f8f4..e0a2c9da0 100644 --- a/html/cgi-bin/shutdown.cgi +++ b/html/cgi-bin/shutdown.cgi @@ -29,11 +29,11 @@ $cgiparams{'ACTION'} = ''; if ($cgiparams{'ACTION'} eq $Lang::tr{'shutdown'}) { $death = 1; &General::log($Lang::tr{'shutting down ipfire'}); - system '/usr/local/bin/ipfirereboot down'; + &General::system('/usr/local/bin/ipfirereboot', 'down'); } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'reboot'}) { $rebirth = 1; &General::log($Lang::tr{'rebooting ipfire'}); - system '/usr/local/bin/ipfirereboot boot'; + &General::system('/usr/local/bin/ipfirereboot', 'boot'); } if ($death == 0 && $rebirth == 0) {
diff --git a/html/cgi-bin/speed.cgi b/html/cgi-bin/speed.cgi index 4468abd90..8acdb2bd8 100644 --- a/html/cgi-bin/speed.cgi +++ b/html/cgi-bin/speed.cgi @@ -36,8 +36,8 @@ foreach $field (@fields) { } }
-my $interface = `cat /var/ipfire/red/iface 2>/dev/null`; -my @data_now = `ip -s link show $interface 2>/dev/null`; +my $interface = &General::get_red_interface(); +my @data_now = &General::system_output("ip", "-s", "link", "show", "$interface");
my $lastline; my $rxb_now = 0; diff --git a/html/cgi-bin/time.cgi b/html/cgi-bin/time.cgi index 8363b9951..6bf3dcc84 100644 --- a/html/cgi-bin/time.cgi +++ b/html/cgi-bin/time.cgi @@ -20,6 +20,7 @@ ###############################################################################
use strict; +use POSIX qw(strftime);
# enable only the following on debugging purpose #use warnings; @@ -125,8 +126,8 @@ ERROR:
if ($timesettings{'ENABLENTP'} eq 'on' && $timesettings{'VALID'} eq 'yes') { - system ('/usr/bin/touch', "${General::swroot}/time/enable"); - system ('/usr/local/bin/timectrl enable >/dev/null 2>&1'); + &General::system('/usr/bin/touch', "${General::swroot}/time/enable"); + &General::system('/usr/local/bin/timectrl', 'enable'); &General::log($Lang::tr{'ntp syncro enabled'}); unlink "/var/lock/time/counter"; if ($timesettings{'UPDATE_METHOD'} eq 'periodically') @@ -138,7 +139,7 @@ ERROR: } if ($timesettings{'ENABLECLNTP'} eq 'on') # DPC added to 1.3.1 { - system ('/usr/bin/touch', "${General::swroot}/time/allowclients"); # DPC added to 1.3.1 + &General::system('/usr/bin/touch', "${General::swroot}/time/allowclients"); # DPC added to 1.3.1 &General::log($Lang::tr{'ntpd restarted'}); # DPC added to 1.3.1 } else { unlink "${General::swroot}/time/allowclients"; @@ -150,11 +151,11 @@ ERROR: unlink "${General::swroot}/time/enable"; unlink "/var/lock/time/settimenow"; unlink "${General::swroot}/time/allowclients"; # DPC added to 1.3.1 - system ('/usr/local/bin/timectrl disable >/dev/null 2>&1'); + &General::system('/usr/local/bin/timectrl', 'disable'); &General::log($Lang::tr{'ntp syncro disabled'}) } if (! $errormessage) { - system ('/usr/local/bin/timectrl restart >/dev/null 2>&1'); # DPC added to 1.3.1 + &General::system('/usr/local/bin/timectrl', 'restart'); # DPC added to 1.3.1 } }
@@ -163,7 +164,7 @@ ERROR: $timesettings{'ACTION'} = &Header::cleanhtml ($timesettings{'ACTION'}); if ($timesettings{'ACTION'} eq $Lang::tr{'set time now'} && $timesettings{'ENABLENTP'} eq 'on') { - system ('/usr/bin/touch', "/var/lock/time/settimenow"); + &General::system('/usr/bin/touch', "/var/lock/time/settimenow"); }
&General::readhash("${General::swroot}/time/settings", %timesettings); @@ -180,11 +181,18 @@ if ($timesettings{'VALID'} eq '') }
unless ($errormessage) { - $timesettings{'SETMONTH'} = `date +'%m %e %Y %H %M'|cut -c 1-2`; - $timesettings{'SETDAY'} = `date +'%m %e %Y %H %M'|cut -c 4-5`; - $timesettings{'SETYEAR'} = `date +'%m %e %Y %H %M'|cut -c 7-10`; - $timesettings{'SETHOUR'} = `date +'%m %e %Y %H %M'|cut -c 12-13`; - $timesettings{'SETMINUTES'} = `date +'%m %e %Y %H %M'|cut -c 15-16`; + # Get date and time. + my $date = strftime("%m %e %Y %H %M", localtime); + + # Split date string into single values. + my ($month, $day, $year, $hour, $minute) = split(/ /, $date); + + # Assign values to the hash. + $timesettings{'SETMONTH'} = $month; + $timesettings{'SETDAY'} = $day; + $timesettings{'SETYEAR'} = $year; + $timesettings{'SETHOUR'} = $hour; + $timesettings{'SETMINUTES'} = $minute; $_=$timesettings{'SETDAY'}; $timesettings{'SETDAY'}=~ tr/ /0/; } diff --git a/html/cgi-bin/tor.cgi b/html/cgi-bin/tor.cgi index f39c0d8da..3349336ae 100644 --- a/html/cgi-bin/tor.cgi +++ b/html/cgi-bin/tor.cgi @@ -873,9 +873,9 @@ sub BuildConfiguration() {
# Restart the service. if (($settings{'TOR_ENABLED'} eq 'on') || ($settings{'TOR_RELAY_ENABLED'} eq 'on')) { - system("/usr/local/bin/torctrl restart &>/dev/null"); + &General::system("/usr/local/bin/torctrl", "restart"); } else { - system("/usr/local/bin/torctrl stop &>/dev/null"); + &General::system("/usr/local/bin/torctrl", "stop"); } # Update pid and memory daemonstats(); diff --git a/html/cgi-bin/traffic.cgi b/html/cgi-bin/traffic.cgi index 4846cfdf9..2f28537d0 100644 --- a/html/cgi-bin/traffic.cgi +++ b/html/cgi-bin/traffic.cgi @@ -87,17 +87,17 @@ sub display_vnstat print"No data for $device !<br>"; } else { # Summary - system("/usr/bin/vnstati -c 1 -s -i $device -o /srv/web/ipfire/html/graphs/vnstat-s-$device.png"); + &General::system("/usr/bin/vnstati", "-c", "1", "-s", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-s-$device.png"); # 5-minute graphs - system("/usr/bin/vnstati -c 1 -5 -i $device -o /srv/web/ipfire/html/graphs/vnstat-5-$device.png"); + &General::system("/usr/bin/vnstati", "-c", "1", "-5", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-5-$device.png"); # Hour graph - system("/usr/bin/vnstati -c 1 -h -i $device -o /srv/web/ipfire/html/graphs/vnstat-h-$device.png"); + &General::system("/usr/bin/vnstati", "-c", "1", "-h", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-h-$device.png"); # Day graph - system("/usr/bin/vnstati -c 1 -d -i $device -o /srv/web/ipfire/html/graphs/vnstat-d-$device.png"); + &General::system("/usr/bin/vnstati", "-c", "1", "-d", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-d-$device.png"); # Month graph - system("/usr/bin/vnstati -c 1 -m -i $device -o /srv/web/ipfire/html/graphs/vnstat-m-$device.png"); + &General::system("/usr/bin/vnstati", "-c", "1", "-m", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-m-$device.png"); # Top10 graph - system("/usr/bin/vnstati -c 1 -t -i $device -o /srv/web/ipfire/html/graphs/vnstat-t-$device.png"); + &General::system("/usr/bin/vnstati", "-c", "1", "-t", "-i", "$device", "-o", "/srv/web/ipfire/html/graphs/vnstat-t-$device.png");
# Generate HTML-Table with the graphs print <<END diff --git a/html/cgi-bin/updatexlrator.cgi b/html/cgi-bin/updatexlrator.cgi index ec7b75228..9cfe08f4e 100644 --- a/html/cgi-bin/updatexlrator.cgi +++ b/html/cgi-bin/updatexlrator.cgi @@ -192,33 +192,33 @@ if ($xlratorsettings{'ACTION'} eq $Lang::tr{'updxlrtr purge'})
if (($xlratorsettings{'REMOVE_NOSOURCE'} eq 'on') && ($status == $sfNoSource)) { - if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); } + if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); } } if (($xlratorsettings{'REMOVE_OUTDATED'} eq 'on') && ($status == $sfOutdated)) { - if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); } + if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); } } if ($xlratorsettings{'REMOVE_OBSOLETE'} eq 'on') { if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'week') && ($lastaccess < (time - 604800))) { - if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); } + if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); } } if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'month1') && ($lastaccess < (time - 2505600))) { - if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); } + if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); } } if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'month3') && ($lastaccess < (time - 7516800))) { - if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); } + if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); } } if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'month6') && ($lastaccess < (time - 15033600))) { - if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); } + if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); } } if (($xlratorsettings{'NOT_ACCESSED_LAST'} eq 'year') && ($lastaccess < (time - 31536000))) { - if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); } + if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); } } } } @@ -266,7 +266,7 @@ if ($xlratorsettings{'ACTION'} eq $Lang::tr{'updxlrtr save and restart'})
&savesettings;
- system('/usr/local/bin/squidctrl restart >/dev/null 2>&1'); + &General::system('/usr/local/bin/squidctrl', 'restart'); }
if ($xlratorsettings{'ACTION'} eq $Lang::tr{'updxlrtr remove file'}) @@ -278,7 +278,7 @@ if ($xlratorsettings{'ACTION'} eq $Lang::tr{'updxlrtr remove file'}) unless ($updatefile =~ /^download//) { ($vendorid,$uuid,$updatefile) = split('/',$updatefile); - if (-e "$repository/$vendorid/$uuid/$updatefile") { system("rm -r $repository/$vendorid/$uuid"); } + if (-e "$repository/$vendorid/$uuid/$updatefile") { &General::system("rm", "-r", "$repository/$vendorid/$uuid"); } } }
@@ -295,16 +295,16 @@ if (($xlratorsettings{'ACTION'} eq $Lang::tr{'updxlrtr cancel download'}) || ($x &General::readhash("$repository/download/$vendorid/$updatefile.info", %dlinfo);
$id = &getPID("\s${General::swroot}/updatexlrator/bin/download\s.*\s".quotemeta($dlinfo{'SRCURL'})."\s\d\s\d$"); - if ($id) { system("/bin/kill -9 $id"); } + if ($id) { &General::system("/bin/kill", "-9", "$id"); } $id = &getPID("\s/usr/bin/wget\s.*\s".quotemeta($dlinfo{'SRCURL'})."$"); - if ($id) { system("/bin/kill -9 $id"); } + if ($id) { &General::system("/bin/kill", "-9", "$id"); }
- system("rm $repository/download/$vendorid/$updatefile.info"); + &General::system("rm", "$repository/download/$vendorid/$updatefile.info"); }
if (-e "$repository/download/$vendorid/$updatefile") { - system("rm $repository/download/$vendorid/$updatefile"); + &General::system("rm", "$repository/download/$vendorid/$updatefile"); } }
@@ -1478,15 +1478,15 @@ sub savesettings
if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'daily')) { - system('/usr/local/bin/updxlratorctrl cron daily >/dev/null 2>&1'); + &General::system('/usr/local/bin/updxlratorctrl', 'cron', 'daily'); } if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'weekly')) { - system('/usr/local/bin/updxlratorctrl cron weekly >/dev/null 2>&1'); + &General::system('/usr/local/bin/updxlratorctrl', 'cron', 'weekly'); } if (($xlratorsettings{'ENABLE_AUTOCHECK'} eq 'on') && ($xlratorsettings{'AUTOCHECK_SCHEDULE'} eq 'monthly')) { - system('/usr/local/bin/updxlratorctrl cron monthly >/dev/null 2>&1'); + &General::system('/usr/local/bin/updxlratorctrl', 'cron', 'monthly'); }
# don't save those variable to the settings file, diff --git a/html/cgi-bin/urlfilter.cgi b/html/cgi-bin/urlfilter.cgi index 28ffc8114..3a28721a9 100644 --- a/html/cgi-bin/urlfilter.cgi +++ b/html/cgi-bin/urlfilter.cgi @@ -95,9 +95,9 @@ my $ldesc=''; my $gdesc='';
if (! -d $dbdir) { mkdir("$dbdir"); } -if (! -e $tcfile) { system("touch $tcfile"); } -if (! -e $uqfile) { system("touch $uqfile"); } -if (! -e $sourceurlfile) { system("touch $sourceurlfile"); } +if (! -e $tcfile) { &General::system("touch", "$tcfile"); } +if (! -e $uqfile) { &General::system("touch", "$uqfile"); } +if (! -e $sourceurlfile) { &General::system("touch", "$sourceurlfile"); }
&General::readhash("${General::swroot}/ethernet/settings", %netsettings); &General::readhash("${General::swroot}/main/settings", %mainsettings); @@ -226,7 +226,7 @@ if (($filtersettings{'ACTION'} eq $Lang::tr{'save'}) ||
if (!(-d "${General::swroot}/urlfilter/update")) { mkdir("${General::swroot}/urlfilter/update"); }
- my $exitcode = system("/bin/tar --no-same-owner -xzf ${General::swroot}/urlfilter/blacklists.tar.gz -C ${General::swroot}/urlfilter/update"); + my $exitcode = &General::system("/bin/tar", "--no-same-owner", "-xzf", "${General::swroot}/urlfilter/blacklists.tar.gz", "-C", "${General::swroot}/urlfilter/update");
if ($exitcode > 0) { @@ -235,18 +235,19 @@ if (($filtersettings{'ACTION'} eq $Lang::tr{'save'}) ||
if (-d "${General::swroot}/urlfilter/update/BL") { - system("mv ${General::swroot}/urlfilter/update/BL ${General::swroot}/urlfilter/update/blacklists"); + &General::system("mv", "${General::swroot}/urlfilter/update/BL", "${General::swroot}/urlfilter/update/blacklists"); }
if (-d "${General::swroot}/urlfilter/update/category") { - system("mv ${General::swroot}/urlfilter/update/category ${General::swroot}/urlfilter/update/blacklists"); + &General::system("mv", "${General::swroot}/urlfilter/update/category", "${General::swroot}/urlfilter/update/blacklists"); }
if (!(-d "${General::swroot}/urlfilter/update/blacklists")) { $errormessage = $Lang::tr{'urlfilter invalid content'}; } else { + # XXX Uses globbing system("cp -r ${General::swroot}/urlfilter/update/blacklists/* $dbdir");
&readblockcategories; @@ -255,11 +256,11 @@ if (($filtersettings{'ACTION'} eq $Lang::tr{'save'}) || &writeconfigfile;
$updatemessage = $Lang::tr{'urlfilter upload success'}; - system("${General::swroot}/urlfilter/bin/prebuild.pl &"); - system("logger -t installpackage[urlfilter] "URL filter blacklist - Blacklist update from local source completed""); + &General::system_background("${General::swroot}/urlfilter/bin/prebuild.pl"); + &General::system("logger", "-t", "installpackage[urlfilter]", "URL filter blacklist - Blacklist update from local source completed"); } } - if (-d "${General::swroot}/urlfilter/update") { system("rm -rf ${General::swroot}/urlfilter/update"); } + if (-d "${General::swroot}/urlfilter/update") { &General::system("rm", "-rf", "${General::swroot}/urlfilter/update"); } if (-e "${General::swroot}/urlfilter/blacklists.tar.gz") { unlink("${General::swroot}/urlfilter/blacklists.tar.gz"); } if ($errormessage) { goto ERROR; } } @@ -267,7 +268,7 @@ if (($filtersettings{'ACTION'} eq $Lang::tr{'save'}) || if ($filtersettings{'ACTION'} eq $Lang::tr{'urlfilter backup'}) { $blistbackup = ($filtersettings{'ENABLE_FULLBACKUP'} eq 'on') ? "blacklists" : "blacklists/custom"; - if (system("/bin/tar -C ${General::swroot}/urlfilter -czf ${General::swroot}/urlfilter/backup.tar.gz settings timeconst userquota autoupdate $blistbackup")) + if (&General::system("/bin/tar", "-C", "${General::swroot}/urlfilter", "-czf", "${General::swroot}/urlfilter/backup.tar.gz", "settings", "timeconst", "userquota", "autoupdate", "$blistbackup")) { $errormessage = $Lang::tr{'urlfilter backup error'}; goto ERROR; @@ -306,7 +307,7 @@ if (($filtersettings{'ACTION'} eq $Lang::tr{'save'}) || $errormessage = $!; }
- my $exitcode = system("/bin/tar --no-same-owner --preserve-permissions -xzf ${General::swroot}/urlfilter/backup.tar.gz -C ${General::swroot}/urlfilter/restore"); + my $exitcode = &General::system("/bin/tar", "--no-same-owner", "--preserve-permissions", "-xzf", "${General::swroot}/urlfilter/backup.tar.gz", "-C", "${General::swroot}/urlfilter/restore"); if ($exitcode > 0) { $errormessage = $Lang::tr{'urlfilter tar error'}; @@ -315,6 +316,7 @@ if (($filtersettings{'ACTION'} eq $Lang::tr{'save'}) || { $errormessage = $Lang::tr{'urlfilter invalid restore file'}; } else { + # XXX uses globbing system("cp -rp ${General::swroot}/urlfilter/restore/* ${General::swroot}/urlfilter/"); &readblockcategories; &readcustomlists; @@ -325,7 +327,7 @@ if (($filtersettings{'ACTION'} eq $Lang::tr{'save'}) || }
if (-e "${General::swroot}/urlfilter/backup.tar.gz") { unlink("${General::swroot}/urlfilter/backup.tar.gz"); } - if (-d "${General::swroot}/urlfilter/restore") { system("rm -rf ${General::swroot}/urlfilter/restore"); } + if (-d "${General::swroot}/urlfilter/restore") { &General::system("rm", "-rf", "${General::swroot}/urlfilter/restore"); } if ($errormessage) { goto ERROR; } }
@@ -351,7 +353,7 @@ if (($filtersettings{'ACTION'} eq $Lang::tr{'save'}) || $filtersettings{'VALID'} = 'yes'; &savesettings;
- system('/usr/local/bin/squidctrl restart >/dev/null 2>&1'); + &General::system('/usr/local/bin/squidctrl', 'restart'); } }
@@ -485,7 +487,7 @@ if (($tcsettings{'MODE'} eq 'TIMECONSTRAINT') && ($tcsettings{'ACTION'} eq $Lang $errormessage = $Lang::tr{'urlfilter web proxy service required'}; }
- if (!$errormessage) { system('/usr/local/bin/squidctrl restart >/dev/null 2>&1'); } + if (!$errormessage) { &General::system('/usr/local/bin/squidctrl', 'restart'); } $tcsettings{'TCMODE'}='on'; }
@@ -688,7 +690,7 @@ if (($uqsettings{'MODE'} eq 'USERQUOTA') && ($uqsettings{'ACTION'} eq $Lang::tr{ $errormessage = $Lang::tr{'urlfilter web proxy service required'}; }
- if (!$errormessage) { system('/usr/local/bin/squidctrl restart >/dev/null 2>&1'); } + if (!$errormessage) { &General::system('/usr/local/bin/squidctrl', 'restart'); } $uqsettings{'UQMODE'}='on'; }
@@ -772,7 +774,7 @@ if (($besettings{'ACTION'} eq $Lang::tr{'urlfilter import blacklist'}) && ($bese $errormessage = $!; } else {
- my $exitcode = system("/bin/tar --no-same-owner --preserve-permissions -xzf $editdir/blacklist.tar.gz -C $editdir"); + my $exitcode = &General::system("/bin/tar", "--no-same-owner", "--preserve-permissions", "-xzf", "$editdir/blacklist.tar.gz", "-C", "$editdir"); if ($exitcode > 0) { $errormessage = $Lang::tr{'urlfilter tar error'}; @@ -819,7 +821,7 @@ if (($besettings{'ACTION'} eq $Lang::tr{'urlfilter import blacklist'}) && ($bese } }
- if (-d $editdir) { system("rm -rf $editdir"); } + if (-d $editdir) { &General::system("rm", "-rf", "$editdir"); }
} } @@ -853,7 +855,7 @@ if (($besettings{'ACTION'} eq $Lang::tr{'urlfilter export blacklist'}) && ($bese print FILE "$besettings{'BE_EXPRESSIONS'}\n"; close FILE;
- if (system("/bin/tar -C $editdir -czf $editdir/$besettings{'BE_NAME'}.tar.gz blacklists")) + if (&General::system("/bin/tar", "-C", "$editdir", "-czf", "$editdir/$besettings{'BE_NAME'}.tar.gz", "blacklists")) { $errormessage = $Lang::tr{'urlfilter export error'}; } @@ -869,7 +871,7 @@ if (($besettings{'ACTION'} eq $Lang::tr{'urlfilter export blacklist'}) && ($bese while (<FILE>) { print; } close (FILE);
- if (-d $editdir) { system("rm -rf $editdir"); } + if (-d $editdir) { &General::system("rm", "-rf", "$editdir"); } exit; } } else { @@ -933,8 +935,10 @@ if (($besettings{'ACTION'} eq $Lang::tr{'urlfilter install blacklist'}) && ($bes print FILE "}\n"; close FILE;
+ # XXX uses globbing system("rm -f $dbdir/$besettings{'BE_NAME'}/*.db"); - system("/usr/bin/squidGuard -c $editdir/install.conf -C all"); + &General::system("/usr/bin/squidGuard", "-c", "$editdir/install.conf", "-C", "all"); + # XXX uses globbing system("chmod a+w $dbdir/$besettings{'BE_NAME'}/*.db");
&readblockcategories; @@ -942,9 +946,9 @@ if (($besettings{'ACTION'} eq $Lang::tr{'urlfilter install blacklist'}) && ($bes
&writeconfigfile;
- system('/usr/local/bin/squidctrl restart >/dev/null 2>&1') unless ($besettings{'NORESTART'} eq 'on'); + &General::system('/usr/local/bin/squidctrl', 'restart') unless ($besettings{'NORESTART'} eq 'on');
- if (-d $editdir) { system("rm -rf $editdir"); } + if (-d $editdir) { &General::system("rm", "-rf", "$editdir"); } } else { $errormessage = $Lang::tr{'urlfilter category data error'}; } @@ -966,17 +970,17 @@ if ($filtersettings{'ACTION'} eq $Lang::tr{'urlfilter save schedule'})
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'daily')) { - system('/usr/local/bin/urlfilterctrl cron daily >/dev/null 2>&1'); + &General::system('/usr/local/bin/urlfilterctrl', 'cron', 'daily'); }
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'weekly')) { - system('/usr/local/bin/urlfilterctrl cron weekly >/dev/null 2>&1'); + &General::system('/usr/local/bin/urlfilterctrl', 'cron', 'weekly'); }
if (($filtersettings{'ENABLE_AUTOUPDATE'} eq 'on') && ($filtersettings{'UPDATE_SCHEDULE'} eq 'monthly')) { - system('/usr/local/bin/urlfilterctrl cron monthly >/dev/null 2>&1'); + &General::system('/usr/local/bin/urlfilterctrl', 'cron', 'monthly'); } } } @@ -989,10 +993,10 @@ if ($filtersettings{'ACTION'} eq $Lang::tr{'urlfilter update now'}) { $errormessage = $Lang::tr{'urlfilter custom url required'}; } else { - system("${General::swroot}/urlfilter/bin/autoupdate.pl $filtersettings{'CUSTOM_UPDATE_URL'} &"); + &General::system_background("${General::swroot}/urlfilter/bin/autoupdate.pl", "$filtersettings{'CUSTOM_UPDATE_URL'}"); } } else { - system("${General::swroot}/urlfilter/bin/autoupdate.pl $filtersettings{'UPDATE_SOURCE'} &"); + &General::system_background("${General::swroot}/urlfilter/bin/autoupdate.pl", "$filtersettings{'UPDATE_SOURCE'}"); } }
@@ -2533,11 +2537,11 @@ sub savesettings delete $filtersettings{'BACKGROUND'}; delete $filtersettings{'UPDATEFILE'};
- system("chown -R nobody.nobody $dbdir"); - system('/usr/bin/squidGuard -C custom/allowed/domains >/dev/null 2>&1'); - system('/usr/bin/squidGuard -C custom/allowed/urls >/dev/null 2>&1'); - system('/usr/bin/squidGuard -C custom/blocked/domains >/dev/null 2>&1'); - system('/usr/bin/squidGuard -C custom/blocked/urls >/dev/null 2>&1 '); + &General::system("chown", "-R", "nobody.nobody", "$dbdir"); + &General::system('/usr/bin/squidGuard', '-C', 'custom/allowed/domains'); + &General::system('/usr/bin/squidGuard', '-C', 'custom/allowed/urls'); + &General::system('/usr/bin/squidGuard', '-C', 'custom/blocked/domains'); + &General::system('/usr/bin/squidGuard', '-C', 'custom/blocked/urls'); &setpermissions ($dbdir);
&General::writehash("${General::swroot}/urlfilter/settings", %filtersettings); @@ -2694,12 +2698,13 @@ sub setpermissions foreach $category (<$bldir/*>) { if (-d $category){ - system("chmod 755 $category &> /dev/null"); + &General::system("chmod", "755", "$category"); foreach $blacklist (<$category/*>) { - if (-f $blacklist) { system("chmod 644 $blacklist &> /dev/null"); } - if (-d $blacklist) { system("chmod 755 $blacklist &> /dev/null"); } + if (-f $blacklist) { &General::system("chmod", "644", "$blacklist"); } + if (-d $blacklist) { &General::system("chmod", "755", "$blacklist"); } } + # XXX uses globbing system("chmod 666 $category/*.db &> /dev/null"); &setpermissions ($category); } diff --git a/html/cgi-bin/vpnmain.cgi b/html/cgi-bin/vpnmain.cgi index 20ee6da93..79a2943d4 100644 --- a/html/cgi-bin/vpnmain.cgi +++ b/html/cgi-bin/vpnmain.cgi @@ -208,10 +208,12 @@ sub newcleanssldatabase { close FILE; } if (! -s ">${General::swroot}/certs/index.txt") { - system ("touch ${General::swroot}/certs/index.txt"); + open(FILE, ">${General::swroot}/certs/index.txt"); + close(FILE); } if (! -s ">${General::swroot}/certs/index.txt.attr") { - system ("touch ${General::swroot}/certs/index.txt.attr"); + open(FILE, ">${General::swroot}/certs/index.txt.attr"); + close(FILE); } unlink ("${General::swroot}/certs/index.txt.old"); unlink ("${General::swroot}/certs/index.txt.attr.old"); @@ -224,9 +226,13 @@ sub newcleanssldatabase { ### sub callssl ($) { my $opt = shift; - my $retssl = `/usr/bin/openssl $opt 2>&1`; #redirect stderr + + # Split the given argument string into single pieces and assign them to an array. + my @opts = split(/ /, $opt); + + my @retssl = &General::system_output("/usr/bin/openssl", @opts); #redirect stderr my $ret = ''; - foreach my $line (split (/\n/, $retssl)) { + foreach my $line (split (/\n/, @retssl)) { &General::log("ipsec", "$line") if (0); # 1 for verbose logging $ret .= '<br>'.$line if ( $line =~ /error|unknown/ ); } @@ -240,13 +246,21 @@ sub callssl ($) { ### sub getCNfromcert ($) { #&General::log("ipsec", "Extracting name from $_[0]..."); - my $temp = `/usr/bin/openssl x509 -text -in $_[0]`; - $temp =~ /Subject:.*CN = (.*)[\n]/; - $temp = $1; - $temp =~ s+/Email+, E+; - $temp =~ s/ ST = / S = /; - $temp =~ s/,//g; - $temp =~ s/'//g; + my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "$_[0]"); + my $temp; + + foreach my $line (@temp) { + if ($line =~ /Subject:.*CN = (.*)[\n]/) { + $temp = $1; + $temp =~ s+/Email+, E+; + $temp =~ s/ ST = / S = /; + $temp =~ s/,//g; + $temp =~ s/'//g; + + last; + } + } + return $temp; } ### @@ -254,11 +268,19 @@ sub getCNfromcert ($) { ### sub getsubjectfromcert ($) { #&General::log("ipsec", "Extracting subject from $_[0]..."); - my $temp = `/usr/bin/openssl x509 -text -in $_[0]`; - $temp =~ /Subject: (.*)[\n]/; - $temp = $1; - $temp =~ s+/Email+, E+; - $temp =~ s/ ST = / S = /; + my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "$_[0]"); + my $temp; + + foreach my $line (@temp) { + if($line =~ /Subject: (.*)[\n]/) { + $temp = $1; + $temp =~ s+/Email+, E+; + $temp =~ s/ ST = / S = /; + + last; + } + } + return $temp; } ### @@ -568,9 +590,9 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg &General::writehash("${General::swroot}/vpn/settings", %vpnsettings); &writeipsecfiles(); if (&vpnenabled) { - system('/usr/local/bin/ipsecctrl', 'S'); + &General::system('/usr/local/bin/ipsecctrl', 'S'); } else { - system('/usr/local/bin/ipsecctrl', 'D'); + &General::system('/usr/local/bin/ipsecctrl', 'D'); } sleep $sleepDelay; SAVE_ERROR: @@ -595,7 +617,7 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg } &General::writehasharray("${General::swroot}/vpn/config", %confighash); &writeipsecfiles(); - system('/usr/local/bin/ipsecctrl', 'R'); + &General::system('/usr/local/bin/ipsecctrl', 'R'); sleep $sleepDelay;
### @@ -667,8 +689,8 @@ END $errormessage = $!; goto UPLOADCA_ERROR; } - my $temp = `/usr/bin/openssl x509 -text -in $filename`; - if ($temp !~ /CA:TRUE/i) { + my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "$filename"); + if (! grep(/CA:TRUE/, @temp)) { $errormessage = $Lang::tr{'not a valid ca certificate'}; unlink ($filename); goto UPLOADCA_ERROR; @@ -686,7 +708,7 @@ END $cahash{$key}[1] = &Header::cleanhtml(getsubjectfromcert ("${General::swroot}/ca/$cgiparams{'CA_NAME'}cert.pem")); &General::writehasharray("${General::swroot}/vpn/caconfig", %cahash);
- system('/usr/local/bin/ipsecctrl', 'R'); + &General::system('/usr/local/bin/ipsecctrl', 'R'); sleep $sleepDelay;
UPLOADCA_ERROR: @@ -702,9 +724,9 @@ END &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', "$Lang::tr{'ca certificate'}:"); - my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`; - $output = &Header::cleanhtml($output,"y"); - print "<pre>$output</pre>\n"; + my @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem"); + @output = &Header::cleanhtml(@output,"y"); + print "<pre>@output</pre>\n"; &Header::closebox(); print "<div align='center'><a href='/cgi-bin/vpnmain.cgi'>$Lang::tr{'back'}</a></div>"; &Header::closebigbox(); @@ -724,7 +746,9 @@ END print "Content-Type: application/force-download\n"; print "Content-Type: application/octet-stream\r\n"; print "Content-Disposition: attachment; filename=$cahash{$cgiparams{'KEY'}}[0]cert.pem\r\n\r\n"; - print `/usr/bin/openssl x509 -in ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem`; + + my @cert = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem"); + print "@cert"; exit(0); } else { $errormessage = $Lang::tr{'invalid key'}; @@ -739,21 +763,21 @@ END
if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) { foreach my $key (keys %confighash) { - my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/certs/$confighash{$key}[1]cert.pem`; - if ($test =~ /: OK/) { + my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem", "${General::swroot}/certs/$confighash{$key}[1]cert.pem"); + if (grep(/: OK/, @test)) { # Delete connection unlink ("${General::swroot}/certs/$confighash{$key}[1]cert.pem"); unlink ("${General::swroot}/certs/$confighash{$key}[1].p12"); delete $confighash{$key}; &General::writehasharray("${General::swroot}/vpn/config", %confighash); &writeipsecfiles(); - system('/usr/local/bin/ipsecctrl', 'D', $key) if (&vpnenabled); + &General::system('/usr/local/bin/ipsecctrl', 'D', $key) if (&vpnenabled); } } unlink ("${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem"); delete $cahash{$cgiparams{'KEY'}}; &General::writehasharray("${General::swroot}/vpn/caconfig", %cahash); - system('/usr/local/bin/ipsecctrl', 'R'); + &General::system('/usr/local/bin/ipsecctrl', 'R'); sleep $sleepDelay; } else { $errormessage = $Lang::tr{'invalid key'}; @@ -768,8 +792,8 @@ END my $assignedcerts = 0; if ( -f "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem" ) { foreach my $key (keys %confighash) { - my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem ${General::swroot}/certs/$confighash{$key}[1]cert.pem`; - if ($test =~ /: OK/) { + my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem", "${General::swroot}/certs/$confighash{$key}[1]cert.pem"); + if (grep(/: OK/, @test)) { $assignedcerts++; } } @@ -805,7 +829,7 @@ END unlink ("${General::swroot}/ca/$cahash{$cgiparams{'KEY'}}[0]cert.pem"); delete $cahash{$cgiparams{'KEY'}}; &General::writehasharray("${General::swroot}/vpn/caconfig", %cahash); - system('/usr/local/bin/ipsecctrl', 'R'); + &General::system('/usr/local/bin/ipsecctrl', 'R'); sleep $sleepDelay; } } else { @@ -817,19 +841,19 @@ END ### } elsif ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'} || $cgiparams{'ACTION'} eq $Lang::tr{'show host certificate'}) { - my $output; + my @output; &Header::showhttpheaders(); &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); if ($cgiparams{'ACTION'} eq $Lang::tr{'show root certificate'}) { &Header::openbox('100%', 'left', "$Lang::tr{'root certificate'}:"); - $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/ca/cacert.pem`; + @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/ca/cacert.pem"); } else { &Header::openbox('100%', 'left', "$Lang::tr{'host certificate'}:"); - $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/hostcert.pem`; + @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/certs/hostcert.pem"); } - $output = &Header::cleanhtml($output,"y"); - print "<pre>$output</pre>\n"; + @output = &Header::cleanhtml(@output,"y"); + print "<pre>@output</pre>\n"; &Header::closebox(); print "<div align='center'><a href='/cgi-bin/vpnmain.cgi'>$Lang::tr{'back'}</a></div>"; &Header::closebigbox(); @@ -843,7 +867,9 @@ END if ( -f "${General::swroot}/ca/cacert.pem" ) { print "Content-Type: application/force-download\n"; print "Content-Disposition: attachment; filename=cacert.pem\r\n\r\n"; - print `/usr/bin/openssl x509 -in ${General::swroot}/ca/cacert.pem`; + + my @cert = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/ca/cacert.pem"); + print "@cert"; exit(0); } ### @@ -853,7 +879,9 @@ END if ( -f "${General::swroot}/certs/hostcert.pem" ) { print "Content-Type: application/force-download\n"; print "Content-Disposition: attachment; filename=hostcert.pem\r\n\r\n"; - print `/usr/bin/openssl x509 -in ${General::swroot}/certs/hostcert.pem`; + + my @cert = &General::system_output("/usr/bin/openssl", "x509", "-in", "${General::swroot}/certs/hostcert.pem"); + print "@cert"; exit(0); } ### @@ -1216,7 +1244,7 @@ END
ROOTCERT_SUCCESS: if (&vpnenabled) { - system('/usr/local/bin/ipsecctrl', 'S'); + &General::system('/usr/local/bin/ipsecctrl', 'S'); sleep $sleepDelay; } ROOTCERT_SKIP: @@ -1228,7 +1256,12 @@ END print "Content-Type: application/force-download\n"; print "Content-Disposition: attachment; filename=" . $confighash{$cgiparams{'KEY'}}[1] . ".p12\r\n"; print "Content-Type: application/octet-stream\r\n\r\n"; - print `/bin/cat ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1].p12`; + + open(FILE, "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1].p12"); + my @p12 = <FILE>; + close(FILE); + print "@file"; + exit (0);
# Export Apple profile to browser @@ -1507,9 +1540,9 @@ END &Header::openpage($Lang::tr{'ipsec'}, 1, ''); &Header::openbigbox('100%', 'left', '', ''); &Header::openbox('100%', 'left', "$Lang::tr{'cert'}:"); - my $output = `/usr/bin/openssl x509 -text -in ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`; - $output = &Header::cleanhtml($output,"y"); - print "<pre>$output</pre>\n"; + my @output = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem"); + @output = &Header::cleanhtml(@output,"y"); + print "<pre>@output</pre>\n"; &Header::closebox(); print "<div align='center'><a href='/cgi-bin/vpnmain.cgi'>$Lang::tr{'back'}</a></div>"; &Header::closebigbox(); @@ -1526,7 +1559,12 @@ END if ( -f "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem") { print "Content-Type: application/force-download\n"; print "Content-Disposition: attachment; filename=" . $confighash{$cgiparams{'KEY'}}[1] . "cert.pem\n\n"; - print `/bin/cat ${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem`; + + open(FILE, "${General::swroot}/certs/$confighash{$cgiparams{'KEY'}}[1]cert.pem"); + my @pem = <FILE>; + close(FILE); + print "@pem"; + exit (0); }
@@ -1543,12 +1581,12 @@ END $confighash{$cgiparams{'KEY'}}[0] = 'on'; &General::writehasharray("${General::swroot}/vpn/config", %confighash); &writeipsecfiles(); - system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'}) if (&vpnenabled); + &General::system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'}) if (&vpnenabled); } else { $confighash{$cgiparams{'KEY'}}[0] = 'off'; &General::writehasharray("${General::swroot}/vpn/config", %confighash); &writeipsecfiles(); - system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'}) if (&vpnenabled); + &General::system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'}) if (&vpnenabled); } sleep $sleepDelay; } else { @@ -1564,7 +1602,7 @@ END
if ($confighash{$cgiparams{'KEY'}}) { if (&vpnenabled) { - system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'}); + &General::system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'}); sleep $sleepDelay; } } else { @@ -1584,7 +1622,7 @@ END delete $confighash{$cgiparams{'KEY'}}; &General::writehasharray("${General::swroot}/vpn/config", %confighash); &writeipsecfiles(); - system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'}) if (&vpnenabled); + &General::system('/usr/local/bin/ipsecctrl', 'D', $cgiparams{'KEY'}) if (&vpnenabled); } else { $errormessage = $Lang::tr{'invalid key'}; } @@ -1952,8 +1990,8 @@ END unshift (@names,$cahash{$x}[0]); } if ($casubject) { # a new one! - my $temp = `/usr/bin/openssl x509 -text -in /tmp/newcacert`; - if ($temp !~ /CA:TRUE/i) { + my @temp = &General::system_output("/usr/bin/openssl", "x509", "-text", "-in", "/tmp/newcacert"); + if (! grep(/CA:TRUE/, @temp)) { $errormessage = $Lang::tr{'not a valid ca certificate'}; } else { #compute a name for it @@ -1968,7 +2006,7 @@ END $cahash{$key}[0] = $cgiparams{'CA_NAME'}; $cahash{$key}[1] = $casubject; &General::writehasharray("${General::swroot}/vpn/caconfig", %cahash); - system('/usr/local/bin/ipsecctrl', 'R'); + &General::system('/usr/local/bin/ipsecctrl', 'R'); } } } @@ -2008,12 +2046,12 @@ END # Verify the certificate has a valid CA and move it &General::log("ipsec", "Validating imported cert against our known CA..."); my $validca = 1; #assume ok - my $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/cacert.pem $filename`; - if ($test !~ /: OK/) { + my @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ca/cacert.pem", "$filename"); + if (! grep(/: OK/, @test)) { my $validca = 0; foreach my $key (keys %cahash) { - $test = `/usr/bin/openssl verify -CAfile ${General::swroot}/ca/$cahash{$key}[0]cert.pem $filename`; - if ($test =~ /: OK/) { + @test = &General::system_output("/usr/bin/openssl", "verify", "-CAfile", "${General::swroot}/ca/$cahash{$key}[0]cert.pem", "$filename"); + if (grep(/: OK/, @test)) { $validca = 1; last; } @@ -2276,7 +2314,7 @@ END &General::writehasharray("${General::swroot}/vpn/config", %confighash); &writeipsecfiles(); if (&vpnenabled) { - system('/usr/local/bin/ipsecctrl', 'S', $key); + &General::system('/usr/local/bin/ipsecctrl', 'S', $key); sleep $sleepDelay; } if ($cgiparams{'EDIT_ADVANCED'} eq 'on') { @@ -2822,7 +2860,7 @@ if(($cgiparams{'ACTION'} eq $Lang::tr{'advanced'}) || &General::writehasharray("${General::swroot}/vpn/config", %confighash); &writeipsecfiles(); if (&vpnenabled) { - system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'}); + &General::system('/usr/local/bin/ipsecctrl', 'S', $cgiparams{'KEY'}); sleep $sleepDelay; } goto ADVANCED_END; @@ -3271,7 +3309,7 @@ EOF &General::readhasharray("${General::swroot}/vpn/config", %confighash); $cgiparams{'CA_NAME'} = '';
- my @status = `/usr/local/bin/ipsecctrl I 2>/dev/null`; + my @status = &General::system_output("/usr/local/bin/ipsecctrl", "I");
$checked{'ENABLED'} = $cgiparams{'ENABLED'} eq 'on' ? "checked='checked'" : '';
diff --git a/html/cgi-bin/wakeonlan.cgi b/html/cgi-bin/wakeonlan.cgi index 289dc224a..164cec2de 100644 --- a/html/cgi-bin/wakeonlan.cgi +++ b/html/cgi-bin/wakeonlan.cgi @@ -171,7 +171,7 @@ if ( $cgiparams{'ACTION'} eq 'wakeup' )
undef %cgiparams;
- system("/usr/sbin/etherwake -i $iface $mac"); + &General::system("/usr/sbin/etherwake", "-i", "$iface", "$mac");
# make a box with info, 'refresh' to normal screen after 5 seconds if ( $refresh eq 'yes' ) diff --git a/html/cgi-bin/webaccess.cgi b/html/cgi-bin/webaccess.cgi index 0d50f01b1..934fe6beb 100644 --- a/html/cgi-bin/webaccess.cgi +++ b/html/cgi-bin/webaccess.cgi @@ -86,7 +86,7 @@ if (($cgiparams{'ACTION'} eq 'submit') && ($is_supervisor)) ((defined($proxysettings{'SUPERVISOR_PASSWORD'})) && ($proxysettings{'SUPERVISOR_PASSWORD'} eq ''))) { &write_acl; - system("/usr/local/bin/squidctrl restart >/dev/null 2>&1"); + &General::system("/usr/local/bin/squidctrl", "restart"); } }
diff --git a/html/cgi-bin/wireless.cgi b/html/cgi-bin/wireless.cgi index d4592a2a4..35bdaaa60 100644 --- a/html/cgi-bin/wireless.cgi +++ b/html/cgi-bin/wireless.cgi @@ -133,7 +133,7 @@ ADDERROR: close(FILE); undef %cgiparams; &General::log($Lang::tr{'wireless config added'}); - system('/usr/local/bin/wirelessctrl'); + &General::system('/usr/local/bin/wirelessctrl'); } ADDEXIT: } @@ -157,7 +157,7 @@ if ($cgiparams{'ACTION'} eq 'edit') } } &General::log($Lang::tr{'wireless config changed'}); - system('/usr/local/bin/wirelessctrl'); + &General::system('/usr/local/bin/wirelessctrl'); }
if ($cgiparams{'ACTION'} eq 'remove' || $cgiparams{'ACTION'} eq 'toggle') @@ -178,7 +178,7 @@ if ($cgiparams{'ACTION'} eq 'remove' || $cgiparams{'ACTION'} eq 'toggle') } close(FILE); &General::log($Lang::tr{'wireless config changed'}); - system('/usr/local/bin/wirelessctrl'); + &General::system('/usr/local/bin/wirelessctrl'); }
@@ -277,7 +277,7 @@ my @curhosts = <HOSTFILE>; close (HOSTFILE);
my $connstate = &Header::connectionstatus(); -my @arp = `/sbin/arp -n`; +my @arp = &General::system_output("/sbin/arp", "-n"); shift @arp;
foreach my $line (@current) diff --git a/html/cgi-bin/wirelessclient.cgi b/html/cgi-bin/wirelessclient.cgi index a7a9881b8..7cd23aed4 100644 --- a/html/cgi-bin/wirelessclient.cgi +++ b/html/cgi-bin/wirelessclient.cgi @@ -796,7 +796,7 @@ END }
sub BuildConfiguration() { - system("/usr/local/bin/wirelessclient restart"); + &General::system("/usr/local/bin/wirelessclient", "restart"); }
sub NextID() { diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index 602d4d3c1..eba5fe774 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -148,16 +148,16 @@ if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'save'}" ){ &General::writehash("/var/ipfire/wlanap/settings", %wlanapsettings); &WriteConfig_hostapd();
- system("/usr/local/bin/wlanapctrl restart >/dev/null 2>&1"); + &General::system("/usr/local/bin/wlanapctrl", "restart"); pid(); } }elsif ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'wlanap interface'}" ){ &General::writehash("/var/ipfire/wlanap/settings", %wlanapsettings); }elsif ( ($wlanapsettings{'ACTION'} eq "$Lang::tr{'start'}") && ($memory == 0) ){ - system("/usr/local/bin/wlanapctrl start >/dev/null 2>&1"); + &General::system("/usr/local/bin/wlanapctrl", "start"); pid(); }elsif ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'stop'}" ){ - system("/usr/local/bin/wlanapctrl stop >/dev/null 2>&1"); + &General::system("/usr/local/bin/wlanapctrl", "stop"); $memory=0; }
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index eee51575b..0d2228ede 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -326,8 +326,6 @@ 'advproxy errmsg wpad invalid ip or mask' => 'WPAD: Ungültige IP oder Subnetz für ausgenommenes IP-Subnetz', 'advproxy error design' => 'Design der Fehlermeldungen', 'advproxy error language' => 'Sprache der Fehlermeldungen', -'advproxy fake referer' => 'Gefälschter Referer für externe Webseiten', -'advproxy fake useragent' => 'Gefälschter User-Agent für externe Webseiten', 'advproxy friday' => 'Fr', 'advproxy from' => 'Von', 'advproxy group access control' => 'Gruppenbasierte Zugriffskontrolle', @@ -357,7 +355,6 @@ 'advproxy off' => 'Proxy aus', 'advproxy offline mode' => 'Aktiviere Offline-Modus', 'advproxy on' => 'Proxy ein', -'advproxy privacy' => 'Datenschutz', 'advproxy proxy port' => 'Proxyport', 'advproxy proxy port transparent' => 'Transparenter Port', 'advproxy ram cache size' => 'Cachegröße im Arbeitsspeicher (MB)', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index a48deeeca..2ba6961f3 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -323,8 +323,6 @@ 'advproxy errmsg wpad invalid ip or mask' => 'WPAD: Invalid IP or subnet for excluded IP subnet', 'advproxy error design' => 'Error messages design', 'advproxy error language' => 'Error messages language', -'advproxy fake referer' => 'Fake referer submitted to external sites', -'advproxy fake useragent' => 'Fake useragent submitted to external sites', 'advproxy friday' => 'Fri', 'advproxy from' => 'From', 'advproxy group access control' => 'Group based access control', @@ -354,7 +352,6 @@ 'advproxy off' => 'Proxy off', 'advproxy offline mode' => 'Enable offline mode', 'advproxy on' => 'Proxy on', -'advproxy privacy' => 'Privacy', 'advproxy proxy port' => 'Proxy port', 'advproxy proxy port transparent' => 'Transparent port', 'advproxy ram cache size' => 'Memory cache size (MB)', diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl index e76c987bc..1080afdea 100644 --- a/langs/es/cgi-bin/es.pl +++ b/langs/es/cgi-bin/es.pl @@ -297,8 +297,6 @@ 'advproxy errmsg time restriction' => 'Restricción de tiempo no válida', 'advproxy error design' => 'Diseño de mensajes de error', 'advproxy error language' => 'Idioma de Mensajes de error', -'advproxy fake referer' => 'Referer falso enviado a sitios externos', -'advproxy fake useragent' => 'Useragent falso enviado a sitios externos', 'advproxy friday' => 'Vie', 'advproxy from' => 'De', 'advproxy hdd cache size' => 'Tamaño del caché en disco duro (MB)', @@ -326,7 +324,6 @@ 'advproxy off' => 'Proxy Apagado', 'advproxy offline mode' => 'Activar modo fuera de línea', 'advproxy on' => 'Proxy Encendido', -'advproxy privacy' => 'Privacidad', 'advproxy proxy port' => 'Puerto del proxy', 'advproxy ram cache size' => 'Tamaño de memoria caché', 'advproxy redirector children' => 'Número de procesos filtrados', diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl index 840292f9c..1b6d30111 100644 --- a/langs/fr/cgi-bin/fr.pl +++ b/langs/fr/cgi-bin/fr.pl @@ -330,8 +330,6 @@ 'advproxy errmsg wpad invalid ip or mask' => 'WPAD : IP ou sous-réseau invalide pour le sous-réseau IP exclu', 'advproxy error design' => 'Construction messages erronés ', 'advproxy error language' => 'Langage des messages erronés ', -'advproxy fake referer' => 'Fausses références soumises aux sites externes ', -'advproxy fake useragent' => 'Faux useragent soumis aux sites externes ', 'advproxy friday' => 'Ven', 'advproxy from' => 'De', 'advproxy group access control' => 'Contrôle d'accès basé sur le groupe', @@ -361,7 +359,6 @@ 'advproxy off' => 'Proxy inactif', 'advproxy offline mode' => 'Autoriser le mode hors connexion ', 'advproxy on' => 'Proxy actif', -'advproxy privacy' => 'Privé', 'advproxy proxy port' => 'Port proxy ', 'advproxy proxy port transparent' => 'Port transparent ', 'advproxy ram cache size' => 'Taille cache mémoire (Mo) ', diff --git a/langs/it/cgi-bin/it.pl b/langs/it/cgi-bin/it.pl index 57585dd27..e9bd157a3 100644 --- a/langs/it/cgi-bin/it.pl +++ b/langs/it/cgi-bin/it.pl @@ -257,8 +257,6 @@ 'advproxy errmsg time restriction' => 'Invalid time restriction', 'advproxy error design' => 'Design dei messaggi di errore', 'advproxy error language' => 'Lingua dei messaggi di errore', -'advproxy fake referer' => 'Fake referer submitted to external sites', -'advproxy fake useragent' => 'Fake useragent submitted to external sites', 'advproxy friday' => 'Ven', 'advproxy from' => 'Da', 'advproxy hdd cache size' => 'Harddisk cache size (MB)', @@ -286,7 +284,6 @@ 'advproxy off' => 'Proxy off', 'advproxy offline mode' => 'Attiva modalità offline', 'advproxy on' => 'Proxy Acceso', -'advproxy privacy' => 'Privacy', 'advproxy proxy port' => 'Porta Proxy', 'advproxy proxy port transparent' => 'Porta Transparente', 'advproxy ram cache size' => 'Dimensione della Memoria di cache (MB)', diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl index fb5a932f9..d607e4f89 100644 --- a/langs/nl/cgi-bin/nl.pl +++ b/langs/nl/cgi-bin/nl.pl @@ -256,8 +256,6 @@ 'advproxy errmsg time restriction' => 'Ongeldige tijdsbeperking', 'advproxy error design' => 'Opmaak foutmeldingen', 'advproxy error language' => 'Taal foutmeldingen', -'advproxy fake referer' => 'Nepverwijzing die wordt gestuurd naar externe sites', -'advproxy fake useragent' => 'Nep useragent die wordt gestuurd naar externe sites', 'advproxy friday' => 'Vri', 'advproxy from' => 'Van', 'advproxy hdd cache size' => 'Harddisk cache-grootte (MB)', @@ -285,7 +283,6 @@ 'advproxy off' => 'Proxy uit', 'advproxy offline mode' => 'Schakel offline modus in', '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)', diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl index d3540cc62..a44f43fa4 100644 --- a/langs/pl/cgi-bin/pl.pl +++ b/langs/pl/cgi-bin/pl.pl @@ -245,8 +245,6 @@ 'advproxy errmsg time restriction' => 'Niepoprawne ograniczenia czase', 'advproxy error design' => 'Styl komunikatów o błędach', 'advproxy error language' => 'Język komunikatów o błędach', -'advproxy fake referer' => 'Fake referer submitted to external sites', -'advproxy fake useragent' => 'Fake useragent submitted to external sites', 'advproxy friday' => 'Pią', 'advproxy from' => 'Od', 'advproxy hdd cache size' => 'Rozmiar cache na dysku (MB)', @@ -274,7 +272,6 @@ 'advproxy off' => 'Proxy wyłączone', 'advproxy offline mode' => 'Włącz tryb offline', 'advproxy on' => 'Proxy wł', -'advproxy privacy' => 'Prywatność', 'advproxy proxy port' => 'Port proxy', 'advproxy ram cache size' => 'Rozmiar RAM cache (MB)', 'advproxy redirector children' => 'Liczba procesów filtrujących', diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl index 12afa0b92..c0342eb25 100644 --- a/langs/ru/cgi-bin/ru.pl +++ b/langs/ru/cgi-bin/ru.pl @@ -243,8 +243,6 @@ 'advproxy errmsg time restriction' => 'Неверное ограничение по времени', 'advproxy error design' => 'Оформление ошибок', 'advproxy error language' => 'Язык, на котором отображаются ошибки', -'advproxy fake referer' => 'Липовый referer Для внешних сайтов', -'advproxy fake useragent' => 'Липовый useragent для внешних сайтов', 'advproxy friday' => 'Пт', 'advproxy from' => 'C', 'advproxy hdd cache size' => 'Размер кэша жёсткого диска (MB)', @@ -272,7 +270,6 @@ 'advproxy off' => 'Proxy выкл', 'advproxy offline mode' => 'Включить автономный режим', 'advproxy on' => 'Proxy вкл', -'advproxy privacy' => 'Приватность', 'advproxy proxy port' => 'Порт Proxy', 'advproxy ram cache size' => 'Размер памяти кэша (MB)', 'advproxy redirector children' => 'Количество фильтруемых процессов', diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl index 83416ebe7..f90bee0ea 100644 --- a/langs/tr/cgi-bin/tr.pl +++ b/langs/tr/cgi-bin/tr.pl @@ -318,8 +318,6 @@ 'advproxy errmsg time restriction' => 'Geçersiz zaman kısıtlaması', 'advproxy error design' => 'Hata mesajları tasarımı', 'advproxy error language' => 'Hata mesajları dili', -'advproxy fake referer' => 'Sahte referansı harici sitelere gönder', -'advproxy fake useragent' => 'Sahte yönlendiriciyi harici sitelere gönder', 'advproxy friday' => 'Cum', 'advproxy from' => 'Başlangıç', 'advproxy group access control' => 'Grup tabanlı erişim kontrolü', @@ -349,7 +347,6 @@ 'advproxy off' => 'Vekil sunucu kapalı', 'advproxy offline mode' => 'Çevrimdışı yöntemi aktifleştir', 'advproxy on' => 'Vekil sunucu', -'advproxy privacy' => 'Gizlilik', 'advproxy proxy port' => 'Vekil sunucu bağlantı noktası', 'advproxy proxy port transparent' => 'Şeffaf bağlantı noktası', 'advproxy ram cache size' => 'Bellek önbellek boyutu (MB)', diff --git a/lfs/cmake b/lfs/cmake index 489513b90..85ac8690c 100644 --- a/lfs/cmake +++ b/lfs/cmake @@ -24,7 +24,7 @@
include Config
-VER = 3.20.3 +VER = 3.20.4
THISAPP = cmake-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -42,7 +42,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 57ddb91cd14cb7e58a34f1f1066bf8c2 +$(DL_FILE)_MD5 = 99e849c6910f1df027cc0365027fa19b
install : $(TARGET)
diff --git a/lfs/cups-filters b/lfs/cups-filters index ebd04622f..d00b5ccb2 100644 --- a/lfs/cups-filters +++ b/lfs/cups-filters @@ -24,7 +24,7 @@
include Config
-VER = 1.28.8 +VER = 1.28.9
THISAPP = cups-filters-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = cups-filters -PAK_VER = 5 +PAK_VER = 6
DEPS = cups ghostscript
@@ -46,7 +46,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 914fb53d31ff8500dc25d2e2c68ca5c1 +$(DL_FILE)_MD5 = 1ea8d0311463d4026f0f631a4843dec2
install : $(TARGET)
diff --git a/lfs/fuse b/lfs/fuse index 5235348a5..99291527b 100644 --- a/lfs/fuse +++ b/lfs/fuse @@ -24,7 +24,7 @@
include Config
-VER = 3.10.3 +VER = 3.10.4
THISAPP = fuse-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 75546f9070323b8ce69c2ed8ffff20c4 +$(DL_FILE)_MD5 = 55b87e9ed691c2fa698e491241985b4a
install : $(TARGET)
diff --git a/lfs/glib b/lfs/glib index 011e0564c..522c54258 100644 --- a/lfs/glib +++ b/lfs/glib @@ -24,7 +24,7 @@
include Config
-VER = 2.68.2 +VER = 2.68.3
THISAPP = glib-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 8d288416da38476c71998e5c2d3602ed +$(DL_FILE)_MD5 = a3968c7510447f055fd2204ba947f80f
install : $(TARGET)
diff --git a/lfs/hwdata b/lfs/hwdata index de7d26e1f..6f0361272 100644 --- a/lfs/hwdata +++ b/lfs/hwdata @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2020 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2021 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 # diff --git a/lfs/postfix b/lfs/postfix index 5ea0e4955..3735f7e69 100644 --- a/lfs/postfix +++ b/lfs/postfix @@ -24,7 +24,7 @@
include Config
-VER = 3.6.0 +VER = 3.6.1
THISAPP = postfix-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = postfix -PAK_VER = 30 +PAK_VER = 31
DEPS =
@@ -66,7 +66,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 75cfd03f0cf4c35876d630d2a04bd6f4 +$(DL_FILE)_MD5 = 85d1c2b06a469ba6cc61946c7042e40e
install : $(TARGET)
diff --git a/lfs/smartmontools b/lfs/smartmontools index 98f6a5eca..8428ce012 100644 --- a/lfs/smartmontools +++ b/lfs/smartmontools @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2020 IPFire Team info@ipfire.org # +# Copyright (C) 2007-2021 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 = 7.1 +VER = 7.2
THISAPP = smartmontools-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 430cd5f64caa4524018b536e5ecd9c29 +$(DL_FILE)_MD5 = e8d134c69ae4959a05cb56b31172ffb1
install : $(TARGET)
diff --git a/lfs/xfsprogs b/lfs/xfsprogs index 47298e634..90a43d34d 100644 --- a/lfs/xfsprogs +++ b/lfs/xfsprogs @@ -24,7 +24,7 @@
include Config
-VER = 5.11.0 +VER = 5.12.0
THISAPP = xfsprogs-$(VER) DL_FILE = $(THISAPP).tar.xz @@ -45,7 +45,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_MD5 = 803bcddd983803b339acfb76064dfd84 +$(DL_FILE)_MD5 = b401d76ccd66e4fdf3d123193e5e1b91
install : $(TARGET)
diff --git a/src/hwdata/pci.ids b/src/hwdata/pci.ids index 4ef971f04..d2c6db4c0 100644 --- a/src/hwdata/pci.ids +++ b/src/hwdata/pci.ids @@ -1,8 +1,8 @@ # # List of PCI ID's # -# Version: 2020.10.25 -# Date: 2020-10-25 03:15:01 +# Version: 2021.05.16 +# Date: 2021-05-16 03:15:02 # # Maintained by Albert Pool, Martin Mares, and other volunteers from # the PCI ID Project at https://pci-ids.ucw.cz/. @@ -70,6 +70,8 @@ 018a LevelOne 0106 FPC-0106TX misprogrammed [RTL81xx] 01de Oxide Computer Company +# probably misprogrammed Intel Atom C2338 on Dell 0K8Y0N board +0200 Dell (wrong ID) # 021b is not Compaq but there is a board misprogrammed 021b Compaq Computer Corporation 8139 HNE-300 (RealTek RTL8139c) [iPaq Networking] @@ -520,6 +522,7 @@ 1000 3040 9210-8i 1000 3080 9200-8e [LSI SAS 6Gb/s SAS/SATA PCIe x8 External HBA] 1000 30b0 9200-8e [LSI SAS 6Gb/s SAS/SATA PCIe x8 External HBA] + 1014 03ca IBM 6Gb SAS HBA [9212-4i4e] 1028 1f1c 6Gbps SAS HBA Adapter 1028 1f1d PERC H200 Adapter 1028 1f1e PERC H200 Integrated @@ -703,8 +706,8 @@ 1d49 0200 ThinkSystem 430-8i SAS/SATA 12Gb HBA 1d49 0202 ThinkSystem 430-8e SAS/SATA 12Gb HBA 1d49 0204 ThinkSystem 430-8i SAS/SATA 12Gb Dense HBA -# PCIe switch SES management endpoint - 00b2 PEX880xx PCIe Gen 4 Switch SES management endpoint + 00b2 PCIe Switch management endpoint + 1d49 0003 ThinkSystem 1611-8P PCIe Gen4 NVMe Switch Adapter 00be SAS3504 Fusion-MPT Tri-Mode RAID On Chip (ROC) 00bf SAS3404 Fusion-MPT Tri-Mode I/O Controller Chip (IOC) 00c0 SAS3324 PCI-Express Fusion-MPT SAS-3 @@ -871,6 +874,14 @@ 1d49 060e ThinkSystem RAID 940-32i 8GB Flash PCIe Gen4 12Gb Adapter 1d49 060f ThinkSystem RAID 940-8e 4GB Flash PCIe Gen4 12Gb Adapter 10e2 MegaRAID 12GSAS/PCIe Secure SAS39xx +# 9560 16 internal port RAID controller + 1000 4000 MegaRAID 9560-16i +# 9560 8 internal port RAID controller + 1000 4010 MegaRAID 9560-8i +# 9580 8 internal & 8 external port RAID controller + 1000 4020 MegaRAID 9580-8i8e +# MegaRAID 9562-16i 9562 16 internal port RAID controller + 1000 40b0 MegaRAID 9562-16i 1028 1ae0 PERC H755 Adapter 1028 1ae1 PERC H755 Front 1028 1ae2 PERC H755N Front @@ -905,6 +916,9 @@ 8086 0523 MegaRAID RAID Controller SRCS16 3050 SAS2008 PCI-Express Fusion-MPT SAS-2 6001 DX1 Multiformat Broadcast HD/SD Encoder/Decoder + c010 PEX88048 50 lane, 50 port, PCI Express Gen 4.0 ExpressFabric Platform + c012 PEX880xx PCIe Gen 4 Switch + 1d49 0003 ThinkSystem 1611-8P PCIe Gen4 NVMe Switch Adapter 1001 Kolter Electronic 0010 PCI 1616 Measurement card with 32 digital I/O lines 0011 OPTO-PCI Opto-Isolated digital I/O board @@ -948,24 +962,36 @@ 1478 Navi 10 XL Upstream Port of PCI Express Switch 1479 Navi 10 XL Downstream Port of PCI Express Switch 154c Kryptos [Radeon RX 350] + 1462 7c28 MS-7C28 Motherboard 154e Garfield 1551 Arlene 1552 Pooky 1561 Anubis 15d8 Picasso 103c 8615 Pavilion Laptop 15-cw1xxx + 17aa 3181 ThinkCentre M75n IoT 17aa 5124 ThinkPad E595 + ea50 cc10 RXi2-BP 15dd Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] 103c 83c6 Radeon Vega 8 Mobile + 1043 876b PRIME Motherboard 1458 d000 Radeon RX Vega 11 + ea50 cc10 RXi2-BP 15de Raven/Raven2/Fenghuang HDMI/DP Audio Controller 103c 8615 Pavilion Laptop 15-cw1xxx + 1043 876b PRIME B450M-A Motherboard 17aa 5124 ThinkPad E595 + ea50 cc10 RXi2-BP 15df Raven/Raven2/Fenghuang/Renoir Cryptographic Coprocessor 103c 8615 Pavilion Laptop 15-cw1xxx + ea50 ce19 mCOM10-L1900 15ff Fenghuang [Zhongshan Subor Z+] 1607 Arden 1636 Renoir + 1638 Cezanne + 163f VanGogh + 164c Lucienne + 164d Rembrandt 1714 BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series] 103c 168b ProBook 4535s 3150 RV380/M24 [Mobility Radeon X600] @@ -1148,6 +1174,7 @@ 1179 ff50 Satellite P305D-S8995E 1458 a022 GA-MA770-DS3rev2.0 Motherboard 1458 a102 GA-880GMA-USB3 + 1462 7596 760GM-E51(MS-7596) Motherboard 17f2 5000 KI690-AM2 Motherboard 4384 SBx00 PCI to PCI Bridge 4385 SBx00 SMBus Controller @@ -1160,6 +1187,7 @@ 1179 ff50 Satellite P305D-S8995E 1458 4385 GA-MA770-DS3rev2.0 Motherboard 1462 7368 K9AG Neo2 + 1462 7596 760GM-E51(MS-7596) Motherboard 15d9 a811 H8DGU 174b 1001 PURE Fusion Mini 17f2 5000 KI690-AM2 Motherboard @@ -1210,6 +1238,7 @@ 1043 8389 M4A785TD Motherboard 105b 0e13 N15235/A74MX mainboard / AMD SB700 1458 b002 GA-MA770-DS3rev2.0 Motherboard + 1462 7596 760GM-E51(MS-7596) Motherboard 1849 4390 Motherboard (one of many) 4391 SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] 103c 1609 ProLiant MicroServer N36L @@ -1233,6 +1262,7 @@ 1043 8443 M5A88-V EVO 105b 0e13 N15235/A74MX mainboard / AMD SB700 1458 5004 GA-880GMA-USB3 + 1462 7596 760GM-E51(MS-7596) Motherboard 15d9 a811 H8DGU 174b 1001 PURE Fusion Mini 4397 SB7x0/SB8x0/SB9x0 USB OHCI0 Controller @@ -1243,12 +1273,14 @@ 1043 8443 M5A88-V EVO 105b 0e13 N15235/A74MX mainboard / AMD SB700 1458 5004 GA-880GMA-USB3 + 1462 7596 760GM-E51(MS-7596) Motherboard 15d9 a811 H8DGU 174b 1001 PURE Fusion Mini 4398 SB7x0 USB OHCI1 Controller 1019 2120 A785GM-M 1043 82ef M3A78-EH Motherboard 105b 0e13 N15235/A74MX mainboard / AMD SB700 + 1462 7596 760GM-E51(MS-7596) Motherboard 15d9 a811 H8DGU 4399 SB7x0/SB8x0/SB9x0 USB OHCI2 Controller 1019 2120 A785GM-M @@ -1256,6 +1288,7 @@ 1043 8443 M5A88-V EVO 105b 0e13 N15235/A74MX mainboard / AMD SB700 1458 5004 GA-880GMA-USB3 + 1462 7596 760GM-E51(MS-7596) Motherboard 174b 1001 PURE Fusion Mini 439c SB7x0/SB8x0/SB9x0 IDE Controller 1002 4392 MSI MS-7713 motherboard @@ -1263,6 +1296,7 @@ 103c 1609 ProLiant MicroServer N36L 1043 82ef M3A78-EH Motherboard 105b 0e13 N15235/A74MX mainboard / AMD SB700 + 1462 7596 760GM-E51(MS-7596) Motherboard 439d SB7x0/SB8x0/SB9x0 LPC host controller 1019 2120 A785GM-M 103c 1609 ProLiant MicroServer N36L @@ -1270,6 +1304,7 @@ 1043 82ef M3A78-EH Motherboard 1043 8443 M5A88-V EVO 105b 0e13 N15235/A74MX mainboard / AMD SB700 + 1462 7596 760GM-E51(MS-7596) Motherboard 174b 1001 PURE Fusion Mini 43a0 SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) 43a1 SB700/SB800/SB900 PCI to PCI bridge (PCIE port 1) @@ -1755,7 +1790,7 @@ 5964 RV280 [Radeon 9200 SE] 1002 5964 Radeon 9200 SE, 64-bit 128MB DDR, 200/166MHz 1043 c006 Radeon 9200 SE / TD / 128M - 1458 4018 Radeon 9200 SE + 1458 4018 R92S128T (Radeon 9200 SE 128MB) 1458 4032 Radeon 9200 SE 128MB 147b 6191 R9200SE-DT 148c 2073 CN-AG92E @@ -1844,7 +1879,7 @@ 1002 5c63 Apple iBook G4 2004 144d c00c P30 notebook 5d44 RV280 [Radeon 9200 SE] (Secondary) - 1458 4019 Radeon 9200 SE (Secondary) + 1458 4019 R92S128T (Radeon 9200 SE 128MB Secondary) 1458 4032 Radeon 9200 SE 128MB 147b 6190 R9200SE-DT (Secondary) 174b 7c12 Radeon 9200 SE (Secondary) @@ -1881,7 +1916,7 @@ 5e6d RV410 [Radeon X700] (Secondary) 148c 2117 Bravo X700 (Secondary) 5f57 R423 [Radeon X800 XT] - 6600 Mars [Radeon HD 8670A/8670M/8750M] + 6600 Mars [Radeon HD 8670A/8670M/8750M / R7 M370] 103c 1952 ProBook 455 G1 6601 Mars [Radeon HD 8730M] 103c 2100 FirePro M4100 @@ -1898,8 +1933,11 @@ 6607 Mars LE [Radeon HD 8530M / R5 M240] 6608 Oland GL [FirePro W2100] 13cc 3d28 MXRT-2600 - 6610 Oland XT [Radeon HD 8670 / R7 250/350] + 6609 Oland GL [FirePro W2100 / Barco MXRT 2600] + 6610 Oland XT [Radeon HD 8670 / R5 340X OEM / R7 250/350/350X OEM] 1019 0030 Radeon HD 8670 + 1028 0081 Radeon R7 350X OEM + 1028 0083 Radeon R5 340X OEM 1028 2120 Radeon R7 250 1028 2322 Radeon R7 250 1462 2910 Radeon HD 8670 @@ -1909,7 +1947,15 @@ 1642 3c91 Radeon HD 8670 1642 3f09 Radeon R7 350 6611 Oland [Radeon HD 8570 / R5 430 OEM / R7 240/340 / Radeon 520 OEM] + 1028 1001 Radeon R5 430 OEM (1024 MByte) + 1028 1002 Radeon R5 430 OEM (2048 MByte) +# The 'AMD Radeon R5 430' instead of 240/340 is NOT a typo! It's actually correct. + 1028 1711 R5 430 OEM (2048 MByte) 1028 210b Radeon R5 240 OEM +# OEM-card for Dell; verified through AMD's own drivers (*.inf) and a TPU BIOS in database + 1028 2121 Radeon HD 8570 OEM +# OEM-card from Fujitsu; verified through AMD's own drivers (*.inf) + 10cf 1889 Radeon HD 8570 OEM 1642 1869 Radeon 520 OEM 174b 4248 Radeon R7 240 OEM 174b a240 Radeon R7 240 OEM @@ -1983,9 +2029,9 @@ 6667 Jet ULT [Radeon R5 M230] 666f Sun LE [Radeon HD 8550M / R5 M230] 66a0 Vega 20 [Radeon Instinct] - 66a1 Vega 20 + 66a1 Vega 20 WKS GL-XE [Radeon Pro VII] 66a2 Vega 20 - 66a3 Vega 20 + 66a3 Vega 20 [Radeon Pro Vega II/Radeon Pro Vega II Duo] 66a7 Vega 20 [Radeon Pro Vega 20] 66af Vega 20 [Radeon VII] 6704 Cayman PRO GL [FirePro V7900] @@ -2179,7 +2225,7 @@ 8086 2111 Radeon HD 6625M 6743 Whistler [Radeon E6760] 6749 Turks GL [FirePro V4900] - 15c3 2b06 MED-X4900 + 15c3 2b06 MED-X4900 (EIZO) 674a Turks GL [FirePro V3900] 13cc 3d22 MXRT-2500 15c3 0106 MED-X3900 @@ -2208,7 +2254,7 @@ 174b 7670 Radeon HD 7670 174b e181 Radeon HD 6670 1787 2309 Radeon HD 6670 - 6759 Turks PRO [Radeon HD 6570/7570/8550] + 6759 Turks PRO [Radeon HD 6570/7570/8550 / R5 230] 103c 3130 Radeon HD 6570 1043 0403 Radeon HD 6570 1462 2500 Radeon HD 6570 @@ -2217,9 +2263,15 @@ 1642 3a67 Radeon HD 6570 1682 3280 Radeon HD 7570 1682 3530 Radeon HD 8550 + 1682 5230 Radeon R5 230 series + 1682 6450 Radeon HD 6450 series 174b 7570 Radeon HD 7570 + 174b 8550 Radeon HD8550 OEM + 174b 8570 Radeon HD8550 OEM 174b e142 Radeon HD 6570 174b e181 Radeon HD 6570 + 1787 a230 Radeon R5 230 series + 1787 a450 Radeon HD 6450 series 1b0a 908f Radeon HD 6570 1b0a 9090 Radeon HD 6570 1b0a 9091 Radeon HD 6570 @@ -2577,6 +2629,7 @@ 1043 04dd STRIX R9 390 148c 2358 Radeon R9 390 174b e324 Sapphire Nitro R9 390 + 67b8 Hawaii XT [Radeon R9 290X Engineering Sample] 67b9 Vesuvius [Radeon R9 295X2] 67be Hawaii LE 67c0 Ellesmere [Radeon Pro WX 7100 Mobile] @@ -2612,6 +2665,7 @@ 1462 3418 Radeon RX 580 Armor 4G OC 1462 341b Radeon RX 570 Armor 8G OC 1462 341e Radeon RX 570 Armor 4G OC + 1462 809e Radeon RX 480 4GB 1462 8a92 Radeon RX 580 148c 2372 Radeon RX 480 [Red Dragon] 148c 2373 Radeon RX 470 @@ -2619,8 +2673,10 @@ # https://www.techpowerup.com/vgabios/?manufacturer=Powercolor&model=RX+58... 148c 2378 Radeon RX 580 148c 2379 Radeon RX 570 4G [Red Dragon] + 148c 2391 Radeon RX 590 [Red Devil] 1682 9470 Radeon RX 470 1682 9480 Radeon RX 480 + 1682 9587 Radeon RX 590 FATBOY 8GB 1682 9588 Radeon RX 580 XTR 1682 c570 Radeon RX 570 1682 c580 Radeon RX 580 @@ -2728,6 +2784,7 @@ 17aa 3643 Radeon R9 A375 17aa 3801 Radeon R9 M275 17aa 3824 Radeon R9 M375 + 1da2 e26a Radeon R7 250 6821 Venus XT [Radeon HD 8870M / R9 M270X/M370X] 1002 031e FirePro SX4000 1028 05cc FirePro M5100 @@ -2891,11 +2948,17 @@ 6864 Vega 10 [Radeon Pro V340] 6867 Vega 10 XL [Radeon Pro Vega 56] 6868 Vega 10 [Radeon PRO WX 8100/8200] + 6869 Vega 10 XGA [Radeon Pro Vega 48] + 686a Vega 10 LEA + 686b Vega 10 XTXA [Radeon Pro Vega 64X] 686c Vega 10 [Radeon Instinct MI25 MxGPU] + 686d Vega 10 GLXTA + 686e Vega 10 GLXLA 687f Vega 10 XL/XT [Radeon RX Vega 56/64] 1002 0b36 RX Vega64 1002 6b76 RX Vega64 1458 230c Radeon RX VEGA 56 GAMING OC 8G + 1da2 e376 Radeon RX VEGA 56 Pulse 8GB OC HBM2 6880 Lexington [Radeon HD 6550M] 103c 163c Pavilion dv6 Radeon HD 6550M 6888 Cypress XT [FirePro V8800] @@ -3141,6 +3204,7 @@ 17af 3000 Radeon HD 6510 17af 3010 Radeon HD 5630 68da Redwood LE [Radeon HD 5550/5570/5630/6390/6490/7570] + 1462 8071 VR5550-MD1G (Radeon HD 5550) 148c 3000 Radeon HD 6390 148c 3001 Radeon HD 6490 1545 7570 Radeon HD 7570 @@ -3413,6 +3477,7 @@ 148c 9380 Radeon R9 380 # Make naming scheme consistent 174b e308 Radeon R9 380 Nitro 4G D5 + 174b e315 Radeon R9 285 693b Tonga PRO GL [FirePro W7100 / Barco MXRT-7600] 694c Polaris 22 XT [Radeon RX Vega M GH] 694e Polaris 22 XL [Radeon RX Vega M GL] @@ -3422,6 +3487,7 @@ 6985 Lexa XT [Radeon PRO WX 3100] 6986 Polaris12 6987 Lexa [Radeon 540X/550X/630 / RX 640 / E9171 MCM] + 698f Lexa XT [Radeon PRO WX 3100 / Barco MXRT 4700] 6995 Lexa XT [Radeon PRO WX 2100] 699f Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] 1028 1720 Radeon RX 550X @@ -3578,17 +3644,36 @@ 174b e329 Radeon R9 FURY 7310 Navi 10 [Radeon Pro W5700X] 7312 Navi 10 [Radeon Pro W5700] + 7314 Navi 10 USB 731f Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] 1458 2313 Radeon RX 5700 XT Gaming OC + 1682 5701 RX 5700 XT RAW II + 1849 5120 Radeon RX 5600 XT 1da2 e411 Radeon RX 5600 XT 7340 Navi 14 [Radeon RX 5500/5500M / Pro 5500M] 7341 Navi 14 [Radeon Pro W5500] 7347 Navi 14 [Radeon Pro W5500M] 734f Navi 14 [Radeon Pro W5300M] - 7360 Navi 12 [Radeon Pro 5600M] - 73bf Navi 21 [Radeon RX 6900 Series] - 73c3 Navi 23 - 73df Navi 22 + 7360 Navi 12 [Radeon Pro 5600M / V520] + 7362 Navi 12 [Radeon Pro V520] + 7388 Arcturus GL-XL + 738c Arcturus GL-XL [AMD Instinct MI100] + 738e Arcturus GL-XL + 73a3 Navi 21 [Radeon PRO W6800] + 73a4 Navi 21 USB + 73af Navi 21 [Radeon RX 6900 XT] + 73bf Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] + 1eae 6701 XFX Speedster MERC 319 AMD Radeon RX 6800 XT Black + 73c3 Navi 22 + 73c4 Navi 22 USB + 73df Navi 22 [Radeon RX 6700/6700 XT / 6800M] + 73e0 Navi 23 + 73e1 Navi 23 + 73e4 Navi 23 USB + 73ff Navi 23 [Radeon RX 6600/6600 XT/6600M] + 7408 Aldebaran + 740c Aldebaran + 740f Aldebaran 7833 RS350 Host Bridge 7834 RS350 [Radeon 9100 PRO/XT IGP] 7835 RS350M [Mobility Radeon 9000 IGP] @@ -3796,6 +3881,7 @@ 95cd RV620 GL [FirePro 2450] 95cf RV620 GL [FirePro 2260] 960f RS780 HDMI Audio [Radeon 3000/3100 / HD 3200/3300] + 1462 7596 760GM-E51(MS-7596) Motherboard 9610 RS780 [Radeon HD 3200] 1458 d000 GA-MA78GM-S2H Motherboard 9611 RS780C [Radeon 3100] @@ -3804,6 +3890,8 @@ 9614 RS780D [Radeon HD 3300] 9615 RS780E [Radeon HD 3200] 9616 RS780L [Radeon 3000] +# ID is probably a copy-paste error by a MSI developer from another mainboard, since all other ID numbers on this mainboard including the sub-device of this device has used subsystem ID 1462:7596 + 1462 7501 760GM-E51(MS-7596) Motherboard 9640 Sumo [Radeon HD 6550D] 9641 Sumo [Radeon HD 6620G] 9642 SuperSumo [Radeon HD 6370D] @@ -3843,6 +3931,7 @@ 9809 Wrestler [Radeon HD 7310] 980a Wrestler [Radeon HD 7290] 9830 Kabini [Radeon HD 8400 / R3 Series] + 1043 8623 AM1I-A Motherboard 9831 Kabini [Radeon HD 8400E] 9832 Kabini [Radeon HD 8330] 1849 9832 QC5000-ITX/PH @@ -3855,6 +3944,7 @@ 9839 Kabini [Radeon HD 8180] 983d Temash [Radeon HD 8250/8280G] 9840 Kabini HDMI/DP Audio + 1043 8623 AM1I-A Motherboard 1849 9840 QC5000-ITX/PH 9850 Mullins [Radeon R3 Graphics] 9851 Mullins [Radeon R4/R5 Graphics] @@ -3986,6 +4076,7 @@ ab10 Lexa HDMI Audio ab18 Vega 12 HDMI Audio ab20 Vega 20 HDMI Audio [Radeon VII] + ab28 Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT] ab38 Navi 10 HDMI Audio ac00 Theater 506 World-Wide Analog Decoder ac01 Theater 506 World-Wide Analog Decoder @@ -4136,12 +4227,12 @@ 2646 0001 KNE100TX Fast Ethernet 000a 21230 Video Codec 000d PBXGB [TGA2] - 000f DEFPA FDDI PCI-to-PDQ Interface Chip [PFI] - 1011 def1 FDDI controller (DEFPA) - 103c def1 FDDI controller (3X-DEFPA) + 000f PCI-to-PDQ Interface Chip [PFI] FDDI (DEFPA) + 1011 def1 FDDIcontroller/PCI (DEFPA) + 103c def1 FDDIcontroller/PCI (3X-DEFPA) 0014 DECchip 21041 [Tulip Pass 3] 1186 0100 DE-530+ - 0016 DGLPB [OPPO] + 0016 ATMworks 350 Adapter [OPPO] (DGLPB) 0017 PV-PCI Graphics Controller (ZLXp-L) 0018 Memory Channel interface 0019 DECchip 21142/43 @@ -4604,6 +4695,7 @@ 1450 Family 17h (Models 00h-0fh) Root Complex 1451 Family 17h (Models 00h-0fh) I/O Memory Management Unit 1452 Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge + ea50 ce19 mCOM10-L1900 1453 Family 17h (Models 00h-0fh) PCIe GPP Bridge 1454 Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B 1455 Zeppelin/Renoir PCIe Dummy Function @@ -4658,6 +4750,7 @@ 149b Starship Reserved SSP 149c Matisse USB 3.0 Host Controller 1462 7c37 X570-A PRO motherboard + 149d Vangogh CVIP 1510 Family 14h Processor Root Complex 174b 1001 PURE Fusion Mini 1512 Family 14h Processor Root Port @@ -4672,6 +4765,7 @@ 1534 Family 16h Processor Function 4 1535 Family 16h Processor Function 5 1536 Family 16h Processor Root Complex + 1043 8623 AM1I-A Motherboard 1849 1536 QC5000-ITX/PH 1537 Kabini/Mullins PSP-Platform Security Processor 1538 Family 16h Processor Function 0 @@ -4742,28 +4836,40 @@ 15be Stoney Audio Processor 15d0 Raven/Raven2 Root Complex 103c 8615 Pavilion Laptop 15-cw1xxx + 1043 876b PRIME B450M-A Motherboard 15d1 Raven/Raven2 IOMMU 103c 8615 Pavilion Laptop 15-cw1xxx + 1043 876b PRIME B450M-A Motherboard + ea50 ce19 mCOM10-L1900 15d2 Raven/Raven2 PCIe Dummy Host Bridge 15d3 Raven/Raven2 PCIe GPP Bridge [6:0] 15d4 FireFlight USB 3.1 15d5 FireFlight USB 3.1 15da Raven/Raven2 PCIe Dummy Host Bridge 15db Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus A + ea50 ce19 mCOM10-L1900 15dc Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus B + ea50 ce19 mCOM10-L1900 15de Raven/Raven2/FireFlight HD Audio Controller 15df Family 17h (Models 10h-1fh) Platform Security Processor + 1043 876b PRIME Motherboard 17aa 5124 ThinkPad E595 + ea50 ce19 mCOM10-L1900 15e0 Raven USB 3.1 103c 8615 Pavilion Laptop 15-cw1xxx + 1043 876b PRIME Motherboard 17aa 5124 ThinkPad E595 + ea50 ce19 mCOM10-L1900 15e1 Raven USB 3.1 103c 8615 Pavilion Laptop 15-cw1xxx + 1043 876b PRIME Motherboard 17aa 5124 ThinkPad E595 + ea50 ce19 mCOM10-L1900 15e2 Raven/Raven2/FireFlight/Renoir Audio Processor 17aa 5124 ThinkPad E595 15e3 Family 17h (Models 10h-1fh) HD Audio Controller 103c 8615 Pavilion Laptop 15-cw1xxx + 1043 86c7 PRIME B450M-A Motherboard 17aa 5124 ThinkPad E595 15e4 Raven/Raven2/Renoir Sensor Fusion Hub 15e5 Raven2 USB 3.1 @@ -4832,6 +4938,8 @@ 1642 Renoir WLAN 1643 Renoir BT 1644 Renoir I2S + 1648 VanGogh Root Complex + 1649 VanGogh PSP/CCP 1700 Family 12h/14h Processor Function 0 1701 Family 12h/14h Processor Function 1 1702 Family 12h/14h Processor Function 2 @@ -4872,7 +4980,8 @@ 4c53 1030 PC5 mainboard 4c53 1040 CL7 mainboard 4c53 1060 PC7 mainboard - 2001 79c978 [HomePNA] +# Via AMD's own technical reference on their Am79C978 NICs; https://www.amd.com/system/files/TechDocs/22206.pdf + 2001 Am79C978 PCnet Home (HomePNA) 1/10 PCI Ethernet Adapter [Am79C971 PHY] 1092 0a78 Multimedia Home Network Adapter 1668 0299 ActionLink Home Network Adapter 2003 Am 1771 MBW [Alchemy] @@ -4891,6 +5000,8 @@ 2096 CS5536 [Geode companion] UDC 2097 CS5536 [Geode companion] UOC 209a CS5536 [Geode companion] IDE + 2625 Am79C973 [Lance/PCI PCNet/32] + 2627 Am79C975 [Lance/PCI PCNet/32] 3000 ELanSC520 Microcontroller 43a0 Hudson PCI to PCI bridge (PCIE port 0) 43a1 Hudson PCI to PCI bridge (PCIE port 1) @@ -4973,6 +5084,7 @@ 7801 FCH SATA Controller [AHCI mode] 103c 168b ProBook 4535s Notebook 103c 194e ProBook 455 G1 Notebook + 1043 8623 AM1I-A Motherboard 17aa 3988 Z50-75 1849 7801 QC5000-ITX/PH 7802 FCH SATA Controller [RAID mode] @@ -4984,11 +5096,13 @@ 7807 FCH USB OHCI Controller 103c 194e ProBook 455 G1 Notebook 103c 1985 Pavilion 17-e163sg Notebook PC + 1043 8623 AM1I-A Motherboard 17aa 3988 Z50-75 1849 7807 QC5000-ITX/PH 7808 FCH USB EHCI Controller 103c 194e ProBook 455 G1 Notebook 103c 1985 Pavilion 17-e163sg Notebook PC + 1043 8623 AM1I-A Motherboard 17aa 3988 Z50-75 1849 7808 QC5000-ITX/PH 7809 FCH USB OHCI Controller @@ -4998,6 +5112,7 @@ 780b FCH SMBus Controller 103c 194e ProBook 455 G1 Notebook 103c 1985 Pavilion 17-e163sg Notebook PC + 1043 8623 AM1I-A Motherboard 17aa 3988 Z50-75 1849 780b QC5000-ITX/PH 780c FCH IDE Controller @@ -5005,11 +5120,13 @@ 103c 194e ProBook 455 G1 Notebook 103c 1985 Pavilion 17-e163sg Notebook PC 1043 8444 F2A85-M Series + 1043 8576 AM1I-A Motherboard 17aa 3988 Z50-75 1849 8892 QC5000-ITX/PH 780e FCH LPC Bridge 103c 194e ProBook 455 G1 Notebook 103c 1985 Pavilion 17-e163sg Notebook PC + 1043 8623 AM1I-A Motherboard 17aa 3988 Z50-75 1849 780e QC5000-ITX/PH 780f FCH PCI Bridge @@ -5018,12 +5135,15 @@ 7814 FCH USB XHCI Controller 103c 194e ProBook 455 G1 Notebook 103c 1985 Pavilion 17-e163sg Notebook PC + 1043 8623 AM1I-A Motherboard 17aa 3988 Z50-75 1849 7814 QC5000-ITX/PH 7900 FCH SATA Controller [IDE mode] 7901 FCH SATA Controller [AHCI mode] 103c 8615 Pavilion Laptop 15-cw1xxx + 1043 876b PRIME Motherboard 1462 7c37 X570-A PRO motherboard + ea50 ce19 mCOM10-L1900 7902 FCH SATA Controller [RAID mode] 7903 FCH SATA Controller [RAID mode] 7904 FCH SATA Controller [AHCI mode] @@ -5031,12 +5151,16 @@ 7908 FCH USB EHCI Controller 790b FCH SMBus Controller 103c 8615 Pavilion Laptop 15-cw1xxx + 1043 876b PRIME Motherboard 1462 7c37 X570-A PRO motherboard 17aa 5124 ThinkPad E595 + ea50 ce19 mCOM10-L1900 790e FCH LPC Bridge 103c 8615 Pavilion Laptop 15-cw1xxx + 1043 876b PRIME B450M-A Motherboard 1462 7c37 X570-A PRO motherboard 17aa 5124 ThinkPad E595 + ea50 ce19 mCOM10-L1900 790f FCH PCI Bridge 7914 FCH USB XHCI Controller 9600 RS780 Host Bridge @@ -5621,6 +5745,7 @@ 1931 000a GlobeTrotter Fusion Quad Lite (PPP data) 1931 000b GlobeTrotter Fusion Quad Lite (GSM data) 807d 0035 PCI-USB2 (OHCI subsystem) + 8086 4d44 D850EMV2 motherboard 003b PCI to C-bus Bridge 003e NAPCCARD Cardbus Controller 0046 PowerVR PCX2 [midas] @@ -5651,6 +5776,7 @@ 14c2 0205 PTI-205N USB 2.0 Host Controller 1799 0002 Root Hub 807d 1043 PCI-USB2 (EHCI subsystem) + 8086 4d44 D850EMV2 motherboard 00e7 uPD72873 [Firewarden] IEEE1394a OHCI 1.1 Link/2-port PHY Controller 00f2 uPD72874 [Firewarden] IEEE1394a OHCI 1.1 Link/3-port PHY Controller 00f3 uPD6113x Multimedia Decoder/Processor [EMMA2] @@ -6825,6 +6951,7 @@ 0003 Control Video 0004 PlanB Video-In 0007 O'Hare I/O + 000b Apple Camera 000c DOS on Mac 000e Hydra Mac I/O 0010 Heathrow Mac I/O @@ -6995,6 +7122,7 @@ 103c 17e8 SN1000Q 16Gb Dual Port Fibre Channel Adapter 103c 1939 QMH2672 16Gb Dual Port Fibre Channel Adapter 103c 8002 3830C 16G Fibre Channel Host Bus Adapter + 1077 0241 QLE2670 16Gb Single Port Fibre Channel Adapter 2071 ISP2714-based 16/32Gb Fibre Channel to PCIe Adapter 1077 0283 QLE2764 Quad Port 32Gb Fibre Channel to PCIe Adapter 1077 029e QLE2694 Quad Port 16Gb Fibre Channel to PCIe Adapter @@ -7003,6 +7131,9 @@ 2081 ISP2814-based 64/32G Fibre Channel to PCIe Controller 1077 02e1 QLE2874 Quad Port 64GFC PCIe Gen4 x16 Adapter 1077 02e3 QLE2774 Quad Port 32GFC PCIe Gen4 x16 Adapter + 2089 ISP2854-based 64/32G Fibre Channel to PCIe Controller with StorCryption + 1077 02e8 QLE2884 Quad Port 64GFC PCIe Gen4 x16 Adapter with StorCryption + 1077 02ea QLE2784 Quad Port 32GFC PCIe Gen4 x16 Adapter with StorCryption 2100 QLA2100 64-bit Fibre Channel Adapter 1077 0001 QLA2100 64-bit Fibre Channel Adapter 2200 QLA2200 64-bit Fibre Channel Adapter @@ -7023,6 +7154,7 @@ 1590 0203 StoreFabric SN1600Q 32Gb Single Port Fibre Channel Host Bus Adapter 1590 0204 StoreFabric SN1600Q 32Gb Dual Port Fibre Channel Host Bus Adapter 1590 022d 5830C 32Gb Dual Port Fibre Channel Adapter + 193d 100d NIC-FC680i-Mb-2x16G 2281 ISP2812-based 64/32G Fibre Channel to PCIe Controller 1077 02e2 QLE2872 Dual Port 64GFC PCIe Gen4 x8 Adapter 1077 02e4 QLE2772 Dual Port 32GFC PCIe Gen4 x8 Adapter @@ -7032,6 +7164,11 @@ 1077 02f3 QLogic 2x32Gb QLE2772 FC HBA 1590 02d3 SN1610Q - 1P Enhanced 32GFC Single Port Fibre Channel Host Bus Adapter 1590 02d4 SN1610Q – 2P Enhanced 32GFC Dual Port Fibre Channel Host Bus Adapter + 2289 ISP2852-based 64/32G Fibre Channel to PCIe Controller with StorCryption + 1077 02e9 QLE2882 Dual Port 64GFC PCIe Gen4 x8 Adapter with StorCryption + 1077 02eb QLE2782 Dual Port 32GFC PCIe Gen4 x8 Adapter with StorCryption + 1077 02ef QLE2880 Single Port 64GFC PCIe Gen4 x8 Adapter with StorCryption + 1077 02f1 QLE2780 Single Port 32GFC PCIe Gen4 x8 Adapter with StorCryption 2300 QLA2300 64-bit Fibre Channel Adapter 2312 ISP2312-based 2Gb Fibre Channel to PCI-X HBA 103c 0131 2Gb Fibre Channel - Single port [A7538A] @@ -7042,7 +7179,8 @@ 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] - 1077 0137 QLE2460 4 GB PCI-X Host-Bus-Adapter + 1077 0137 QLE2460 Single-Port 4Gbps FC-to-PCI-X/PCIe Host Bus Adapter + 1077 0138 QLE2462 Dual-Port 4Gbps FC-to-PCI-X/PCIe Host Bus Adapter 2532 ISP2532-based 8Gb Fibre Channel to PCI Express HBA 1014 041e FC EN0Y/EN12 PCIe2 LP 8 Gb 4-port Fibre Channel Adapter for POWER 103c 3262 StorageWorks 81Q @@ -7124,6 +7262,8 @@ 1590 021f 10/25GbE 2P QL41262HMCU-HP Adapter 1590 0220 10/25GbE 2P QL41122HLRJ-HP Adapter 1590 02bd 10Gb 2P 524SFP+ NIC + 193d 1030 NIC-ETH681i-Mb-2x25G + 193d 1032 NIC-ETH682i-Mb-2x25G 8080 FastLinQ QL41000 Series 10/25/40/50GbE Controller (FCoE) 1077 0001 10GE 2P QL41162HxRJ-DE Adapter 1077 0002 10GE 2P QL41112HxCU-DE Adapter @@ -8562,6 +8702,7 @@ 10b5 2905 Alpermann+Velte PCI TS: Time Synchronisation Board 10b5 3196 Goramo PLX200SYN sync serial card 10b5 9050 PCI-I04 PCI Passive PC/CAN Interface + 12fe 0001 CAN-PCI/331 CAN bus controller 1369 8901 PCX11+ PCI 1369 8f01 VX222 1369 9401 PCX924 @@ -9469,7 +9610,7 @@ 1682 211c GeForce 6600 256MB DDR DUAL DVI TV 00f3 NV43 [GeForce 6200] 00f4 NV43 [GeForce 6600 LE] - 00f5 G71 [GeForce 7800 GS AGP] + 00f5 G70/G71 [GeForce 7800 GS AGP] 00f6 NV43 [GeForce 6800 GS/XT] 1682 217e XFX GeForce 6800 XTreme 256MB DDR3 AGP 00f8 NV45GL [Quadro FX 3400/4400] @@ -9970,7 +10111,7 @@ 0331 NV35 [GeForce FX 5900] 1043 8145 V9950GE 0332 NV35 [GeForce FX 5900XT] - 0333 NV38 [GeForce FX 5950 Ultra] + 0333 NV38 [GeForce FX 5950 Ultra / PCX 5950] 0334 NV35 [GeForce FX 5900ZT] 1462 9373 FX5900ZT-VTD128 (MS-8937) 0338 NV35GL [Quadro FX 3000] @@ -10732,6 +10873,7 @@ 0a21 GT216M [GeForce GT 330M] 0a22 GT216 [GeForce 315] 0a23 GT216 [GeForce 210] + 0a24 GT216 [GeForce 405] 0a26 GT216 [GeForce 405] 0a27 GT216 [GeForce 405] 0a28 GT216M [GeForce GT 230M] @@ -11581,6 +11723,7 @@ 1184 GK104 [GeForce GTX 770] 1185 GK104 [GeForce GTX 660 OEM] 10de 106f GK104 [GeForce GTX 760 OEM] + 1186 GK104 [GeForce GTX 660 Ti] 1187 GK104 [GeForce GTX 760] 1188 GK104 [GeForce GTX 690] 1189 GK104 [GeForce GTX 670] @@ -11705,6 +11848,7 @@ 128a GK208B 128b GK208B [GeForce GT 710] 1043 85f7 GT710-SL-1GD5 + 1043 8770 GT710-4H-SL-2GD5 128c GK208B 1290 GK208M [GeForce GT 730M] 103c 2afa GeForce GT 730A @@ -11865,6 +12009,7 @@ 1aeb TU116 High Definition Audio Controller 1aec TU116 USB 3.1 Host Controller 1aed TU116 USB Type-C UCSI Controller + 1aef GA102 High Definition Audio Controller 1b00 GP102 [TITAN X] 1b01 GP102 [GeForce GTX 1080 Ti 10GB] 1b02 GP102 [TITAN Xp] @@ -11873,6 +12018,7 @@ 1b07 GP102 [P102-100] 1b30 GP102GL [Quadro P6000] 1b38 GP102GL [Tesla P40] + 1b39 GP102GL [Tesla P10] 1b70 GP102GL 1b78 GP102GL 1b80 GP104 [GeForce GTX 1080] @@ -11927,8 +12073,8 @@ 1c2d GP106M 1c30 GP106GL [Quadro P2000] 1c31 GP106GL [Quadro P2200] - 1c35 GP106 - 1c36 GP106 + 1c35 GP106M [Quadro P2000 Mobile] + 1c36 GP106 [P106M] 1c60 GP106BM [GeForce GTX 1060 Mobile 6GB] 103c 8390 GeForce GTX 1060 Max-Q 6GB 1c61 GP106BM [GeForce GTX 1050 Ti Mobile] @@ -12001,6 +12147,7 @@ 1e04 TU102 [GeForce RTX 2080 Ti] 1e07 TU102 [GeForce RTX 2080 Ti Rev. A] 1462 3715 RTX 2080 Ti GAMING X TRIO + 1e09 TU102 [CMP 50HX] 1e2d TU102 [GeForce RTX 2080 Ti Engineering Sample] 1e2e TU102 [GeForce RTX 2080 Ti 12GB Engineering Sample] 1e30 TU102GL [Quadro RTX 6000/8000] @@ -12049,6 +12196,7 @@ 1f08 TU106 [GeForce RTX 2060 Rev. A] 1f09 TU106 [GeForce GTX 1660 SUPER] 1f0a TU106 [GeForce GTX 1650] + 1f0b TU106 [CMP 40HX] 1f10 TU106M [GeForce RTX 2070 Mobile] 1f11 TU106M [GeForce RTX 2060 Mobile] 1f12 TU106M [GeForce RTX 2060 Max-Q] @@ -12074,14 +12222,23 @@ 1f98 TU117M [GeForce MX450] 1f99 TU117M 1f9c TU117M [GeForce MX450] + 1f9d TU117M [GeForce GTX 1650 Mobile / Max-Q] 1fae TU117GL + 1fb0 TU117GLM [Quadro T1000 Mobile] + 1fb1 TU117GLM [Quadro T600 Mobile] + 1fb2 TU117GLM [Quadro T400 Mobile] 1fb8 TU117GLM [Quadro T2000 Mobile / Max-Q] 1fb9 TU117GLM [Quadro T1000 Mobile] + 1fbb TU117GLM [Quadro T500 Mobile] 1fbf TU117GL 1fd9 TU117BM [GeForce GTX 1650 Mobile Refresh] + 1fdd TU117BM [GeForce GTX 1650 Mobile Refresh] 1ff9 TU117GLM [Quadro T1000 Mobile] 20b0 GA100 [A100 SXM4 40GB] 20b1 GA100 [A100 PCIe 40GB] + 20b2 GA100 [A100 SXM4 80GB] + 20b6 GA100GL [PG506-232] + 20b7 GA100GL [A30 PCIe] 20be GA100 [GRID A100A] 20bf GA100 [GRID A100B] 20f1 GA100 [A100 PCIe 40GB] @@ -12090,34 +12247,73 @@ 2184 TU116 [GeForce GTX 1660] 2187 TU116 [GeForce GTX 1650 SUPER] 2188 TU116 [GeForce GTX 1650] + 2189 TU116 [CMP 30HX] 2191 TU116M [GeForce GTX 1660 Ti Mobile] 2192 TU116M [GeForce GTX 1650 Ti Mobile] 21ae TU116GL 21bf TU116GL + 21c2 TU116 21c4 TU116 [GeForce GTX 1660 SUPER] 21d1 TU116BM [GeForce GTX 1660 Ti Mobile] + 2200 GA102 2204 GA102 [GeForce RTX 3090] - 2206 GA102 [GeForce RTX 3080 10GB / 20GB] + 2205 GA102 [GeForce RTX 3080 20GB] + 2206 GA102 [GeForce RTX 3080] + 10de 1467 GA102 [GeForce RTX 3080] 10de 146d GA102 [GeForce RTX 3080 20GB] 1462 3892 RTX 3080 10GB GAMING X TRIO + 2208 GA102 [GeForce RTX 3080 Ti] + 220d GA102 [GeForce RTX 3080 Lite Hash Rate] 222b GA102 [GeForce RTX 3090 Engineering Sample] 222f GA102 [GeForce RTX 3080 11GB / 12GB Engineering Sample] 2230 GA102GL [RTX A6000] + 2231 GA102GL [RTX A5000] + 2235 GA102GL [A40] + 2236 GA102GL [A10] + 2237 GA102GL [A10G] 223f GA102GL + 228b GA104 High Definition Audio Controller + 2302 GA103 + 2321 GA103 2482 GA104 [GeForce RTX 3070 Ti] - 2484 GA104 [GeForce RTX 3070 8GB / 16GB] + 2483 GA104 + 2484 GA104 [GeForce RTX 3070] 10de 146b GA104 [GeForce RTX 3070] 10de 14ae GA104 [GeForce RTX 3070 16GB] 2486 GA104 [GeForce RTX 3060 Ti] - 249c GA104M [GeForce RTX 3070 Mobile / Max-Q] + 249c GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB] 249d GA104M [GeForce RTX 3070 Mobile / Max-Q] + 249f GA104M 24ac GA104 [GeForce RTX 30x0 Engineering Sample] 24ad GA104 [GeForce RTX 3060 Engineering Sample] 24af GA104 [GeForce RTX 3070 Engineering Sample] + 24b0 GA104GL [RTX A4000] + 24b6 GA104GLM [RTX A5000 Mobile] + 24b7 GA104GLM [RTX A4000 Mobile] + 24b8 GA104GLM [RTX A3000 Mobile] 24bf GA104 [GeForce RTX 3070 Engineering Sample] - 24dc GA104 [GeForce RTX 3070 16GB Engineering Sample] + 24dc GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB] + 24dd GA104M [GeForce RTX 3070 Mobile / Max-Q] + 2501 GA106 [GeForce RTX 3060] + 2503 GA106 [GeForce RTX 3060] + 2504 GA106 [GeForce RTX 3060 Lite Hash Rate] + 2505 GA106 + 2520 GA106M [GeForce RTX 3060 Mobile / Max-Q] + 2523 GA106M [GeForce RTX 3050 Ti Mobile / Max-Q] 252f GA106 [GeForce RTX 3060 Engineering Sample] + 2560 GA106M [GeForce RTX 3060 Mobile / Max-Q] + 2563 GA106M [GeForce RTX 3050 Ti Mobile / Max-Q] + 2583 GA107 [GeForce RTX 3050] + 25a0 GA107M [GeForce RTX 3050 Ti Mobile] + 25a2 GA107M [GeForce RTX 3050 Mobile] + 25a4 GA107 + 25a5 GA107M [GeForce RTX 3050 Mobile] 25af GA107 [GeForce RTX 3050 Engineering Sample] + 25b5 GA107GLM [RTX A4 Mobile] + 25b8 GA107GLM [RTX A2000 Mobile] + 25e0 GA107BM [GeForce RTX 3050 Ti Mobile] + 25e2 GA107BM [GeForce RTX 3050 Mobile] + 25e5 GA107BM [GeForce RTX 3050 Mobile] 10df Emulex Corporation 0720 OneConnect NIC (Skyhawk) 103c 1934 FlexFabric 20Gb 2-port 650M Adapter @@ -12178,6 +12374,7 @@ 1590 0213 StoreFabric SN1200E 1-Port 16Gb Fibre Channel Adapter 1590 0214 StoreFabric SN1200E 2-Port 16Gb Fibre Channel Adapter 1590 022e Synergy 5330C 2-Port 32Gb Fibre Channel Mezz Card + 193d 1060 NIC-FC730i-Mb-2P f011 Saturn: LightPulse Fibre Channel Host Adapter f015 Saturn: LightPulse Fibre Channel Host Adapter f085 LP850 Fibre Channel Host Adapter @@ -12212,6 +12409,7 @@ 10df f419 LPe35002-M2-L 2-Port 32Gb PCIe Fibre Channel Adapter 1590 02d5 StoreFabric SN1610E 1-Port 32Gb Fibre Channel Adapter 1590 02d6 StoreFabric SN1610E 2-Port 32Gb Fibre Channel Adapter + f500 LPe37000/LPe38000 Series 32Gb/64Gb Fibre Channel Adapter f700 LP7000 Fibre Channel Host Adapter f701 LP7000 Fibre Channel Host Adapter Alternate ID (JX1:2-3, JX2:1-2) f800 LP8000 Fibre Channel Host Adapter @@ -12319,6 +12517,7 @@ 8111 Twist3 Frame Grabber 10ec Realtek Semiconductor Co., Ltd. 0139 RTL-8139/8139C/8139C+ Ethernet Controller + 3000 Killer E3000 2.5GbE Controller 5208 RTS5208 PCI Express Card Reader 5209 RTS5209 PCI Express Card Reader 5227 RTS5227 PCI Express Card Reader @@ -12341,6 +12540,7 @@ 1028 06d6 Latitude 7275 tablet 1028 06dc Latitude E7470 1028 06e4 XPS 15 9550 + 1028 06e6 Latitude 11 5175 2-in-1 17aa 224f ThinkPad X1 Carbon 5th Gen 5260 RTS5260 PCI Express Card Reader 5286 RTS5286 PCI Express Card Reader @@ -12349,6 +12549,7 @@ 5288 RTS5288 PCI Express Card Reader 5289 RTL8411 PCI Express Card Reader 1043 1457 K55A Laptop + 5762 RTS5763DL NVMe SSD Controller 8029 RTL-8029(AS) 10b8 2011 EZ-Card (SMC1208) 10ec 8029 RTL-8029(AS) @@ -12421,6 +12622,8 @@ 8e2e 7000 KF-230TX 8e2e 7100 KF-230TX/2 a0a0 0007 ALN-325C + 8161 RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller + 10ec 8168 TP-Link TG-3468 v4.0 Gigabit PCI Express Network Adapter 8167 RTL-8110SC/8169SC Gigabit Ethernet 105b 0e10 RTL-8110SC-GR on a N15235/A74MX mainboard 1458 e000 GA-MA69G-S3H Motherboard @@ -12432,6 +12635,7 @@ 1028 0283 Vostro 220 1028 04b2 Vostro 3350 1028 04da Vostro 3750 + 1028 05d7 Alienware X51 R2 1028 06f2 Latitude 3470 1028 06f3 Latitude 3570 1028 0869 Vostro 3470 @@ -12447,6 +12651,9 @@ 1043 83a3 M4A785/P7P55 Motherboard 1043 8432 P8P67 and other motherboards 1043 8505 P8 series motherboard + 1043 8554 H81M-C Motherboard + 1043 859e AM1I-A Motherboard + 1043 8677 PRIME B450M-A Motherboard 105b 0d7c D270S/D250S Motherboard 10ec 8168 RTL8111/8168 PCI Express Gigabit Ethernet controller 144d c652 RTL8168 on a NP300E5C series laptop @@ -12458,6 +12665,7 @@ 1462 7522 X58 Pro-E 1462 7c37 X570-A PRO motherboard 1775 11cc CC11/CL11 + 17aa 3098 ThinkCentre E73 17aa 3814 Z50-75 17aa 3823 Lenovo V130-15IGM Laptop - Type 81HL 17aa 5124 ThinkPad E595 @@ -12465,6 +12673,7 @@ 7470 3468 TG-3468 Gigabit PCI Express Network Adapter 8086 2055 NUC Kit DN2820FYKH 8086 d615 Desktop Board D510MO/D525MW + ea50 ce19 mCOM10-L1900 8169 RTL8169 PCI Gigabit Ethernet Controller 1025 0079 Aspire 5024WLMi 10bd 3202 EP-320G-TX1 32-bit PCI Gigabit Ethernet Adapter @@ -12481,6 +12690,14 @@ 16ec 011f USR997903 1734 1091 D2030-A1 a0a0 0449 AK86-L motherboard + 816a RTL8111xP UART #1 + ea50 ce19 mCOM10-L1900 + 816b RTL8111xP UART #2 + ea50 ce19 mCOM10-L1900 + 816c RTL8111xP IPMI interface + ea50 ce19 mCOM10-L1900 + 816d RTL811x EHCI host controller + ea50 ce19 mCOM10-L1900 8171 RTL8191SEvA Wireless LAN Controller 8172 RTL8191SEvB Wireless LAN Controller 8173 RTL8192SE Wireless LAN Controller @@ -12543,6 +12760,7 @@ 5005 Alveo U250 7038 FPGA Card XC7VX690T 17aa 402f FPGA XC7VX690T-3FFG1157E + 8019 Memory controller 8380 Ellips ProfiXpress Profibus Master 8381 Ellips Santos Frame Grabber d154 Copley Controls CAN card (PCI-CAN-02) @@ -12780,6 +12998,7 @@ 3220 RocketRAID 3220 3320 RocketRAID 3320 4310 RocketRaid 4310 + 7505 SSD7505 PCIe Gen4 x16 4-Port M.2 NVMe RAID Controller 1104 RasterOps Corp. 1105 Sigma Designs, Inc. 1105 REALmagic Xcard MPEG 1/2/3/4 DVD Decoder @@ -12827,12 +13046,12 @@ 0336 K8M890CE Host Bridge 0340 PT900 Host Bridge 0351 K8T890CF Host Bridge - 0353 VX800 Host Bridge + 0353 VX800/820-Series Chipset Host-Bridge Controller 0364 CN896/VN896/P4M900 Host Bridge 1043 81ce P5VD2-VM mothervoard 0391 VT8371 [KX133] 0409 VX855/VX875 Host Bridge: Host Control - 0410 VX900 Host Bridge: Host Control + 0410 VX900 Series Host Bridge: Host Control 0415 VT6415 PATA IDE Host Controller 1043 838f Motherboard 0501 VT8501 [Apollo MVP4] @@ -12859,7 +13078,7 @@ # probably all K7VT2/4*/6 1849 0571 K7VT series Motherboards 0576 VT82C576 3V [Apollo Master] - 0581 CX700/VX700 RAID Controller + 0581 CX700/VX700/VX800/820-Series Serial ATA RAID-Controller # Upgrade bios to get correct ID: 5324 instead of 0581 1106 0581 Wrong IDE ID 0585 VT82C585VP [Apollo VP1/VPX] @@ -12917,7 +13136,7 @@ 1296 P4M800 Host Bridge 1308 PT894 Host Bridge 1314 CN700/VN800/P4M800CE/Pro Host Bridge - 1324 CX700/VX700 Host Bridge + 1324 CX700/VX700-Series Error Reporting 1327 P4M890 Host Bridge 1336 K8M890CE Host Bridge 1340 PT900 Host Bridge @@ -12925,7 +13144,7 @@ 1353 VX800/VX820 Error Reporting 1364 CN896/VN896/P4M900 Host Bridge 1409 VX855/VX875 Error Reporting - 1410 VX900 Error Reporting + 1410 VX900 Series Error Reporting 1571 VT82C576M/VT82C586 1595 VT82C595/97 [Apollo VP2/97] 1732 VT1732 [Envy24 II] PCI Multi-Channel Audio Controller @@ -12942,7 +13161,7 @@ 2296 P4M800 Host Bridge 2308 PT894 Host Bridge 2314 CN700/VN800/P4M800CE/Pro Host Bridge - 2324 CX700/VX700 Host Bridge + 2324 CX700/VX700-Series Host Interface Control 2327 P4M890 Host Bridge 2336 K8M890CE Host Bridge 2340 PT900 Host Bridge @@ -12950,22 +13169,23 @@ 2353 VX800/VX820 Host Bus Control 2364 CN896/VN896/P4M900 Host Bridge 2409 VX855/VX875 Host Bus Control - 2410 VX900 CPU Bus Controller + 2410 VX900 Series CPU Bus Controller 287a VT8251 PCI to PCI Bridge 287b VT8251 Host Bridge 287c VT8251 PCIE Root Port 287d VT8251 PCIE Root Port 287e VT8237/8251 Ultra VLINK Controller 3022 CLE266 - 3038 VT82xx/62xx UHCI USB 1.1 Controller + 3038 VT82xx/62xx/VX700/8x0/900 UHCI USB 1.1 Controller 0925 1234 onboard UHCI USB 1.1 Controller 1019 0985 P6VXA Motherboard 1019 0a81 L7VTA v1.0 Motherboard (KT400-8235) 1043 8080 A7V333 motherboard - 1043 808c VT6202 USB2.0 4 port controller + 1043 808c VT62xx USB1.1 4 port controller 1043 80a1 A7V8X-X motherboard 1043 80ed A7V600/K8V-X/A8V Deluxe motherboard 1179 0001 Magnia Z310 + 1234 0925 MVP3 USB Controller 1458 5004 GA-7VAX Mainboard 1462 5901 KT6 Delta-FIS2R (MS-6590) 1462 7020 K8T NEO 2 motherboard @@ -13083,7 +13303,7 @@ 3101 VT8653 Host Bridge 3102 VT8662 Host Bridge 3103 VT8615 Host Bridge - 3104 USB 2.0 + 3104 USB 2.0 EHCI-Compliant Host-Controller 0925 1234 onboard EHCI USB 2.0 Controller 1019 0a81 L7VTA v1.0 Motherboard (KT400-8235) 1043 808c A7V8X motherboard @@ -13196,11 +13416,11 @@ 3269 KT880 Host Bridge 3282 K8T800Pro Host Bridge 3287 VT8251 PCI to ISA Bridge - 3288 VT8237A/VT8251 HDA Controller + 3288 VX900/VT8xxx High Definition Audio Controller 19da a179 ZBOX VD01 3290 K8M890 Host Bridge 3296 P4M800 Host Bridge - 3324 CX700/VX700 Host Bridge + 3324 CX700/VX700-Series DRAM Bus Control 3327 P4M890 Host Bridge 3336 K8M890CE Host Bridge 3337 VT8237A PCI to ISA Bridge @@ -13209,8 +13429,9 @@ 3344 CN700/P4M800 Pro/P4M800 CE/VN800 Graphics [S3 UniChrome Pro] 3349 VT8251 AHCI/SATA 4-Port Controller 3351 VT3351 Host Bridge - 3353 VX800 PCI to PCI Bridge + 3353 VX800/820 PCI to PCI Bridge 3364 CN896/VN896/P4M900 Host Bridge + 3365 VT630x IEEE 1394 Host Controller [Fire II/M] 3371 CN896/VN896/P4M900 [Chrome 9 HC] 3372 VT8237S PCI to ISA Bridge 337a VT8237A PCI to PCI Bridge @@ -13219,12 +13440,12 @@ 1043 8374 M5A88-V EVO 1043 8384 P8P67 Deluxe Motherboard 3409 VX855/VX875 DRAM Bus Control - 3410 VX900 DRAM Bus Control + 3410 VX900 Series DRAM Bus Control 19da a179 ZBOX nano VD01 - 3432 VL80x xHCI USB 3.0 Controller + 3432 VL800/801 xHCI USB 3.0 Controller 3456 VX11 Standard Host Bridge 345b VX11 Miscellaneous Bus - 3483 VL805 USB 3.0 Host Controller + 3483 VL805/806 xHCI USB 3.0 Controller 3a01 VX11 Graphics [Chrome 645/640] 4149 VIA VT6420 (ATA133) Controller 4204 K8M800 Host Bridge @@ -13239,7 +13460,7 @@ 4296 P4M800 Host Bridge 4308 PT894 Host Bridge 4314 CN700/VN800/P4M800CE/Pro Host Bridge - 4324 CX700/VX700 Host Bridge + 4324 CX700/VX700-Series Power Management and Testing Control 4327 P4M890 Host Bridge 4336 K8M890CE Host Bridge 4340 PT900 Host Bridge @@ -13247,7 +13468,7 @@ 4353 VX800/VX820 Power Management Control 4364 CN896/VN896/P4M900 Host Bridge 4409 VX855/VX875 Power Management Control - 4410 VX900 Power Management and Chip Testing Control + 4410 VX900 Series Power Management and Chip Testing Control 19da a179 ZBOX nano VD01 5030 VT82C596 ACPI [Apollo PRO] 5122 VX855/VX875 Chrome 9 HCM Integrated Graphics @@ -13256,7 +13477,7 @@ 5287 VT8251 Serial ATA Controller 5290 K8M890 I/O APIC Interrupt Controller 5308 PT894 I/O APIC Interrupt Controller - 5324 VX800 Serial ATA and EIDE Controller + 5324 CX700M2/VX700/VX800/820-Series Serial ATA & EIDE-Controller 5327 P4M890 I/O APIC Interrupt Controller 5336 K8M890CE I/O APIC Interrupt Controller 5340 PT900 I/O APIC Interrupt Controller @@ -13265,7 +13486,7 @@ 5364 CN896/VN896/P4M900 I/O APIC Interrupt Controller 5372 VT8237/8251 Serial ATA Controller 5409 VX855/VX875 APIC and Central Traffic Control - 5410 VX900 APIC and Central Traffic Control + 5410 VX900 Series APIC and Central Traffic Control 6100 VT85C100A [Rhine II] 6287 SATA RAID Controller 6290 K8M890CE Host Bridge @@ -13273,7 +13494,7 @@ 6353 VX800/VX820 Scratch Registers 6364 CN896/VN896/P4M900 Security Device 6409 VX855/VX875 Scratch Registers - 6410 VX900 Scratch Registers + 6410 VX900 Series Scratch Registers 19da a179 ZBOX nano VD01 7122 VX900 Graphics [Chrome9 HD] 7204 K8M800 Host Bridge @@ -13291,7 +13512,7 @@ 7296 P4M800 Host Bridge 7308 PT894 Host Bridge 7314 CN700/VN800/P4M800CE/Pro Host Bridge - 7324 CX700/VX700 Host Bridge + 7324 CX700/VX700-Series North-South Module Interface Control 7327 P4M890 Host Bridge 7336 K8M890CE Host Bridge 7340 PT900 Host Bridge @@ -13299,17 +13520,17 @@ 7353 VX800/VX820 North-South Module Interface Control 7364 CN896/VN896/P4M900 Host Bridge 7409 VX855/VX875 North-South Module Interface Control - 7410 VX900 North-South Module Interface Control + 7410 VX900 Series North-South Module Interface Control 19da a179 ZBOX nano VD01 8231 VT8231 [PCI-to-ISA Bridge] 8235 VT8235 ACPI 8305 VT8363/8365 [KT133/KM133 AGP] - 8324 CX700/VX700 PCI to ISA Bridge + 8324 CX700/VX700-Series Bus Control and Power Management 8353 VX800/VX820 Bus Control and Power Management 8391 VT8371 [KX133 AGP] 8400 MVP4 8409 VX855/VX875 Bus Control and Power Management - 8410 VX900 Bus Control and Power Management + 8410 VX900 Series Bus Control and Power Management 19da a179 ZBOX VD01 8500 KLE133/PLE133/PLE133T 8501 VT8501 [Apollo MVP4 AGP] @@ -13325,19 +13546,19 @@ 8a26 KL133/KL133A/KM133/KM133A [S3 ProSavage] 8d01 PN133/PN133T [S3 Twister] 8d04 KM266/P4M266/P4M266A/P4N266 [S3 ProSavageDDR] - 9001 VX900 Serial ATA Controller + 9001 VX900 Series Serial-ATA Controller 9082 Standard AHCI 1.0 SATA Controller 9140 HDMI Audio Device 9201 USB3.0 Controller - 9530 Secure Digital Memory Card Controller - 95d0 SDIO Host Controller + 9530 VX800/820/900 Series Secure Digital Memory Card Controller + 95d0 VX800/820/900 Series SDIO Host Controller a208 PT890 PCI to PCI Bridge Controller a238 K8T890 PCI to PCI Bridge Controller a327 P4M890 PCI to PCI Bridge Controller - a353 VX8xx South-North Module Interface Control + a353 VX8xx/900 Series South-North Module Interface Control a364 CN896/VN896/P4M900 PCI to PCI Bridge Controller - a409 VX855/VX875 USB Device Controller - a410 VX900 PCI Express Root Port 0 + a409 VX855/VX875/VX900 Series USB Device Controller + a410 VX900 Series PCI Express Root Port 0 b091 VT8633 [Apollo Pro266 AGP] b099 VT8366/A/7 [Apollo KT266/A/333 AGP] b101 VT8653 AGP Bridge @@ -13349,34 +13570,35 @@ b168 VT8235 PCI Bridge b188 VT8237/8251 PCI bridge [K8M890/K8T800/K8T890 South] 147b 1407 KV8-MAX3 motherboard - b198 VT8237/VX700 PCI Bridge + b198 VT8237/CX700/VX700-Series PCI to PCI Bridge b213 VPX/VPX2 I/O APIC Interrupt Controller b353 VX855/VX875/VX900 PCI to PCI Bridge - b410 VX900 PCI Express Root Port 1 + b410 VX900 Series PCI Express Root Port 1 b999 [K8T890 North / VT8237 South] PCI Bridge c208 PT890 PCI to PCI Bridge Controller c238 K8T890 PCI to PCI Bridge Controller c327 P4M890 PCI to PCI Bridge Controller c340 PT900 PCI to PCI Bridge Controller - c353 VX800/VX820 PCI Express Root Port + c353 VX800/820-Series PCI-Express Root (PCI-to-PCI Virtual Bridge) c364 CN896/VN896/P4M900 PCI to PCI Bridge Controller c409 VX855/VX875 EIDE Controller - c410 VX900 PCI Express Root Port 2 + c410 VX900 Series PCI Express Root Port 2 d104 VT8237R USB UDCI Controller d208 PT890 PCI to PCI Bridge Controller d213 VPX/VPX2 PCI to PCI Bridge Controller d238 K8T890 PCI to PCI Bridge Controller d340 PT900 PCI to PCI Bridge Controller - d410 VX900 PCI Express Root Port 3 + d410 VX900 Series PCI Express Root Port 3 e208 PT890 PCI to PCI Bridge Controller e238 K8T890 PCI to PCI Bridge Controller e340 PT900 PCI to PCI Bridge Controller - e353 VX800/VX820 PCI Express Root Port - e410 VX900 PCI Express Physical Layer Electrical Sub-block + e353 VX800/820-Series PCI-Express Root Port 0 + e410 VX900 Series PCI Express Physical Layer Electrical Sub-block f208 PT890 PCI to PCI Bridge Controller f238 K8T890 PCI to PCI Bridge Controller f340 PT900 PCI to PCI Bridge Controller - f353 VX800/VX820 PCI Express Root Port + f353 VX800/820-Series PCI-Express Root Port 1 + f410 VX900 Series PCI UART Port 0-3 1107 Stratus Computers 0576 VIA VT82C570MV [Apollo] (Wrong vendor ID!) 1108 Proteon, Inc. @@ -14011,7 +14233,7 @@ 0002 Dual PCI to RapidIO Bridge 000b POET Serial RapidIO Bridge 000d POET PSDMS Device -1135 Fuji Xerox Co Ltd +1135 FUJIFILM Business Innovation Corp. 0001 Printer controller 1136 Momentum Data Systems 0002 PCI-JTAG @@ -14484,6 +14706,7 @@ 1172 Altera Corporation 00a7 Stratix V 0530 Stratix IV + 646c KT-500/KT-521 board 1173 Adobe Systems, Inc 1174 Bridgeport Machines 1175 Mitron Computer Inc. @@ -14494,6 +14717,7 @@ 1179 Toshiba Corporation 0102 Extended IDE Controller 0103 EX-IDE Type-B + 010e PXP04 NVMe SSD 010f NVMe Controller 0110 NVMe SSD Controller Cx5 1028 1ffb Express Flash NVMe 960G (RI) U.2 (CD5) @@ -14505,7 +14729,9 @@ 1d49 4039 Thinksystem U.2 CM5 NVMe SSD 1d49 403a Thinksystem AIC CM5 NVMe SSD 0113 BG3 NVMe SSD Controller + 1179 0001 Toshiba KBG30ZMS128G 128GB NVMe SSD 0115 XG4 NVMe SSD Controller + 011a XG6 NVMe SSD Controller 0404 DVD Decoder card 0406 Tecra Video Capture device 0407 DVD Decoder card (Version 2) @@ -14865,6 +15091,7 @@ 11aa Actel # Nee Galileo Technology, Inc. 11ab Marvell Technology Group Ltd. + 0100 88F3700 [Armada 3700 Family] ARM SoC 0146 GT-64010/64010A System Controller 0f53 88E6318 Link Street network controller 11ab MV88SE614x SATA II PCI-E controller @@ -15081,6 +15308,8 @@ 6480 MV64460/64461/64462 System Controller 1775 c200 C2K CompactPCI single board computer 6485 MV64460/64461/64462 System Controller, Revision B + 6820 88F6820 [Armada 385] ARM SoC + 6828 88F6828 [Armada 388] ARM SoC 7042 88SX7042 PCI-e 4-port SATA-II 16b8 434b Tempo SATA E4P 7810 MV78100 [Discovery Innovation] ARM SoC @@ -15096,7 +15325,7 @@ 11ad 0003 LNE100TX 11ad f003 LNE100TX 11ad ffff LNE100TX - 1385 f004 FA310TX + 1385 f004 FA310/TX LAN 10/100 PCI Ethernet Adapter 2646 f002 KNE110TX EtheRx Fast Ethernet c115 LNE100TX [Linksys EtherFast 10/100] 11ad c001 LNE100TX [ver 2.0] @@ -15413,6 +15642,7 @@ 8073 PM8073 Tachyon SPCve 12G 16-port SAS/SATA controller 8531 PM8531 PFX 24xG3 Fanout PCIe Switches 8546 PM8546 B-FEIP PSX 96xG3 PCIe Storage Switch + 8562 PM8562 Switchtec PFX-L 32xG3 Fanout-Lite PCIe Gen3 Switch 11f9 I-Cube Inc 11fa Kasan Electronics Company, Ltd. 11fb Datel Inc @@ -15801,6 +16031,7 @@ a000 2000 Parallel Port a000 6000 SPI a000 7000 Local Bus + ea50 1c10 RXi2-BP 125c Aurora Technologies, Inc. 0101 Saturn 4520P 0640 Aries 16000P @@ -15932,6 +16163,7 @@ 0820 SM820 Lynx3D 0910 SM910 2262 SM2262/SM2262EN SSD Controller + 2263 SM2263EN/SM2263XT SSD Controller 1270 Olympus Optical Co., Ltd. 1271 GW Instruments 1272 Telematics International @@ -16149,9 +16381,9 @@ 1281 Yokogawa Electric Corporation 1282 Davicom Semiconductor, Inc. 6585 DM562P V90 Modem - 9009 Ethernet 100/10 MBit + 9009 DM9009 Ethernet Controller 9100 21x4x DEC-Tulip compatible 10/100 Ethernet - 9102 21x4x DEC-Tulip compatible 10/100 Ethernet + 9102 DM9102 Fast Ethernet Controller # Subsystem ID is main ID reveresed. 0291 8212 DM9102A (DM9102AE, SM9102AF) Ethernet 100/10 MBit 9132 Ethernet 100/10 MBit @@ -16169,6 +16401,7 @@ 8888 IT8888F/G PCI to ISA Bridge with SMB [Golden Gate] 8889 IT8889F PCI to ISA Bridge 8892 IT8892E PCIe to PCI Bridge + 8086 200d DH61CR motherboard 8893 IT8893E PCIe to PCI Bridge e886 IT8330G 1284 Sahara Networks, Inc. @@ -16399,6 +16632,7 @@ 2304 PI7C9X2G304 EL/SL PCIe2 3-Port/4-Lane Packet Switch 2404 PI7C9X2G404 EL/SL PCIe2 4-Port/4-Lane Packet Switch 2608 PI7C9X2G608GP PCIe2 6-Port/8-Lane Packet Switch + ea50 cc10 RXi2-BP 400a PI7C9X442SL PCI Express Bridge Port 400e PI7C9X442SL USB OHCI Controller 400f PI7C9X442SL USB EHCI Controller @@ -16409,6 +16643,7 @@ 8150 PCI to PCI Bridge 8152 PI7C8152A/PI7C8152B/PI7C8152BI PCI-to-PCI Bridge 8154 PI7C8154A/PI7C8154B/PI7C8154BI PCI-to-PCI Bridge + 8619 PI7C9X2G1616PR PCIe2 16-Port/16-Lane Packet Switch e110 PI7C9X110 PCI Express to PCI bridge 1775 11cc CC11/CL11 CompactPCI Bridge e111 PI7C9X111SL PCIe-to-PCI Reversible Bridge @@ -16443,12 +16678,13 @@ 12ea Zuken 12eb Aureal Semiconductor 0001 Vortex 1 + 0000 0300 Terasound A3D PCI 104d 8036 AU8820 Vortex Digital Audio Processor 1092 2000 Sonic Impact A3D 1092 2100 Sonic Impact A3D 1092 2110 Sonic Impact A3D 1092 2200 Sonic Impact A3D - 122d 1002 AU8820 Vortex Digital Audio Processor + 122d 1002 SC 338-A3D 12eb 0001 AU8820 Vortex Digital Audio Processor 5053 3355 Montego 50b2 1111 XLerate @@ -16736,12 +16972,14 @@ 134f Algo System Co Ltd 1350 Systec Co. Ltd 1351 Sonix Inc -# nee Thales Idatys -1353 Vierling Communication SAS +# nee Vierling Communication SAS, nee Thales Idatys +1353 dbeeSet Technology 0002 Proserver 0003 PCI-FUT 0004 PCI-S0 0005 PCI-FUT-S0 + 0006 OTDU-1U (FPGA Zynq-7000) + 0007 OTDU-EX 1354 Dwave System Inc 1355 Kratos Analytical Ltd 1356 The Logical Co @@ -17450,6 +17688,8 @@ 1414 Microsoft Corporation 0001 MN-120 (ADMtek Centaur-C based) 0002 MN-130 (ADMtek Centaur-P based) +# Virtual Video Card Device for Windows Remote Desktop (RDP) + 008c Basic Render Driver 5353 Hyper-V virtual VGA 5801 XMA Decoder (Xenon) 5802 SATA Controller - CdRom (Xenon) @@ -17489,9 +17729,50 @@ 9513 OX16PCI954 (Quad 16950 UART) function 1 (parallel port) 9521 OX16PCI952 (Dual 16950 UART) 9523 OX16PCI952 Integrated Parallel Port - c158 OXPCIe952 Dual 16C950 UART +# The OXPCIe952 PCI Express Bridge to Dual Serial & Parallel Port chip is a multifunction device that encodes five reset straps and 1:0 function bits in bits 6:0 of the device ID. Hence it consumes a whole 128-entry block, which is however sparsely populated as obviously disabled functions do not appear in the configuration space. + c100 OXPCIe952 Parallel Port + c101 OXPCIe952 Legacy 950 UART + c104 OXPCIe952 Parallel Port + c105 OXPCIe952 Legacy 950 UART + c106 OXPCIe952 GPIO + c108 OXPCIe952 Parallel Port + c109 OXPCIe952 Legacy 950 UART + c10c OXPCIe952 Parallel Port + c10d OXPCIe952 Legacy 950 UART + c10e OXPCIe952 GPIO + c110 OXPCIe952 Parallel Port + c114 OXPCIe952 Parallel Port + c118 OXPCIe952 Parallel Port + c11b OXPCIe952 Native 950 UART + c11c OXPCIe952 Parallel Port + c11e OXPCIe952 GPIO + c11f OXPCIe952 Native 950 UART + c120 OXPCIe952 Legacy 950 UART + c124 OXPCIe952 Legacy 950 UART + c126 OXPCIe952 GPIO + c128 OXPCIe952 Legacy 950 UART + c12c OXPCIe952 Legacy 950 UART + c12e OXPCIe952 GPIO + c134 OXPCIe952 GPIO + c138 OXPCIe952 Native 950 UART + c13c OXPCIe952 GPIO + c13d OXPCIe952 Native 950 UART + c140 OXPCIe952 Legacy 950 UART #1 + c141 OXPCIe952 Legacy 950 UART #2 + c144 OXPCIe952 Legacy 950 UART #1 + c145 OXPCIe952 Legacy 950 UART #2 + c146 OXPCIe952 GPIO + c148 OXPCIe952 Legacy 950 UART #1 + c149 OXPCIe952 Legacy 950 UART #2 + c14c OXPCIe952 Legacy 950 UART #1 + c14d OXPCIe952 Legacy 950 UART #2 + c14e OXPCIe952 GPIO + c154 OXPCIe952 GPIO + c158 OXPCIe952 Dual Native 950 UART e4bf c504 CP4-SCAT Wireless Technologies Carrier Board e4bf d551 DU1-MUSTANG Dual-Port RS-485 Interface + c15c OXPCIe952 GPIO + c15d OXPCIe952 Dual Native 950 UART c308 EX-44016 16-port serial 1416 Multiwave Innovation pte Ltd 1417 Convergenet Technologies Inc @@ -18249,9 +18530,12 @@ a544 Exynos 8890 PCIe Root Complex a800 XP941 PCIe SSD a802 NVMe SSD Controller SM951/PM951 - a804 NVMe SSD Controller SM961/PM961 + 144d a801 PM963 2.5" NVMe PCIe SSD + a804 NVMe SSD Controller SM961/PM961/SM963 + 144d a801 SM963 2.5" NVMe PCIe SSD a808 NVMe SSD Controller SM981/PM981/PM983 1d49 403b Thinksystem U.2 PM983 NVMe SSD + a80a NVMe SSD Controller PM9A1/PM9A3/980PRO a820 NVMe SSD Controller 171X 1028 1f95 Express Flash NVMe XS1715 SSD 400GB 1028 1f96 Express Flash NVMe XS1715 SSD 800GB @@ -18315,6 +18599,22 @@ 1028 2097 EMC PowerEdge Express Flash Ent NVMe AGN SED RI U.2 Gen4 1.92TB 1028 2098 EMC PowerEdge Express Flash Ent NVMe AGN SED RI U.2 Gen4 3.84TB 1028 2099 EMC PowerEdge Express Flash Ent NVMe AGN SED RI U.2 Gen4 7.68TB + 1028 2118 Ent NVMe v2 AGN FIPS MU U.2 1.6TB + 1028 2119 Ent NVMe v2 AGN MU U.2 1.6TB + 1028 2120 Ent NVMe v2 AGN FIPS MU U.2 3.2T + 1028 2121 Ent NVMe v2 AGN MU U.2 3.2TB + 1028 2122 Ent NVMe v2 AGN FIPS MU U.2 6.4TB + 1028 2123 Ent NVMe v2 AGN MU U.2 6.4TB + 1028 2124 Ent NVMe v2 AGN FIPS MU U.2 6.4TB + 1028 2125 Ent NVMe v2 AGN MU U.2 12.8TB + 1028 2126 Ent NVMe v2 AGN FIPS RI U.2 1.92TB + 1028 2127 Ent NVMe v2 AGN RI U.2 1.92TB + 1028 2128 Ent NVMe v2 AGN FIPS RI U.2 3.84TB + 1028 2129 Ent NVMe v2 AGN RI U.2 3.84TB + 1028 2130 Ent NVMe v2 AGN FIPS RI U.2 7.68TB + 1028 2131 Ent NVMe v2 AGN RI U.2 7.68TB + 1028 2132 Ent NVMe v2 AGN FIPS RI U.2 15.36TB + 1028 2133 Ent NVMe v2 AGN RI U.2 15.36TB ecec Exynos 8895 PCIe Root Complex 144e OLITEC 144f Askey Computer Corp. @@ -18326,6 +18626,7 @@ 1456 Advanced Hardware Architectures 1457 Nuera Communications Inc 1458 Gigabyte Technology Co., Ltd + 3483 USB 3.0 Controller (VIA VL80x-based xHCI Controller) 1459 DOOIN Electronics 145a Escalate Networks Inc 145b PRAIM SRL @@ -18342,6 +18643,8 @@ e836 M115S Hybrid Analog/DVB PAL/SECAM/NTSC Tuner f436 AVerTV Hybrid+FM 1462 Micro-Star International Co., Ltd. [MSI] +# VIA Driver-inf + 3483 MSI USB 3.0 (VIA VL80x-based xHCI USB Controller) aaf0 Radeon RX 580 Gaming X 8G 1463 Fast Corporation 1464 Interactive Circuits & Systems Ltd @@ -18391,6 +18694,7 @@ 148a OPTO 148b INNOMEDIALOGIC Inc. 148c Tul Corporation / PowerColor + 2391 Radeon RX 590 [Red Devil] 148d DIGICOM Systems, Inc. 1003 HCF 56k Data/Fax Modem 148e OSI Plus Corporation @@ -18492,9 +18796,11 @@ 103c 1240 Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM) 14c2 DTK Computer 14c3 MEDIATEK Corp. + 7612 MT7612E 802.11acbgn PCI Express Wireless Network Adapter 7630 MT7630e 802.11bgn Wireless Network Adapter # MT7612E too? 7662 MT7662E 802.11ac PCI Express Wireless Network Adapter + 7915 MT7915E 802.11ax PCI Express Wireless Network Adapter 14c4 IWASAKI Information Systems Co Ltd 14c5 Automation Products AB 14c6 Data Race Inc @@ -18763,11 +19069,13 @@ 103c 0890 NC6000 laptop 103c 099c NX6110/NC6120 10cf 1279 LifeBook E8010D - 165f NetXtreme BCM5720 2-port Gigabit Ethernet PCIe + 165f NetXtreme BCM5720 Gigabit Ethernet PCIe 1028 04f7 PowerEdge R320 server 1028 08fd PowerEdge R6515/R7515 LOM 1028 08ff PowerEdge Rx5xx LOM Board 1028 0900 PowerEdge C6525 LOM +# Dell 5720 LOM + 1028 0917 PowerEdge C6520 LOM 103c 1786 NC332T Adapter 103c 193d NC332i Adapter 103c 2133 NC332i Adapter @@ -18853,6 +19161,7 @@ 103c 339d Ethernet 10Gb 2-port 530SFP+ Adapter 193d 1003 530F-B 193d 1006 530F-L + 193d 100f NIC-ETH522i-Mb-2x10G 1690 NetXtreme BCM57760 Gigabit Ethernet PCIe 1691 NetLink BCM57788 Gigabit Ethernet PCIe 1028 04aa XPS 8300 @@ -18879,6 +19188,7 @@ 16a0 NetLink BCM5785 Fast Ethernet 16a1 BCM57840 NetXtreme II 10 Gigabit Ethernet 1043 866e PEB-10G/57840-2T 10GBase-T Network Adapter + 193d 100b NIC-ETH521i-Mb-4x10G 16a2 BCM57840 NetXtreme II 10/20-Gigabit Ethernet 103c 1916 FlexFabric 20Gb 2-port 630FLB Adapter 103c 1917 FlexFabric 20Gb 2-port 630M Adapter @@ -18998,12 +19308,12 @@ 16d4 BCM57402 NetXtreme-E Ethernet Partition 16d5 BCM57407 NetXtreme-E 10GBase-T Ethernet Controller 16d6 BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller + 14e4 1202 BCM957412M4122C OCP 1x25G Type1 wRoCE 14e4 4120 NetXtreme E-Series Advanced Dual-port 10Gb SFP+ Ethernet Network Daughter Card 14e4 4126 NetXtreme-E Dual-port 10G SFP+ Ethernet OCP 3.0 Adapter (BCM957412N4120C) 152d 8b20 BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller 152d 8b22 BCM57412 NetXtreme-E 25Gb RDMA Ethernet Controller 16d7 BCM57414 NetXtreme-E 10Gb/25Gb RDMA Ethernet Controller - 14e4 1202 BCM957412M4122C OCP 1x25G Type1 wRoCE 14e4 1402 BCM957414A4142CC 10Gb/25Gb Ethernet PCIe 14e4 1404 BCM957414M4142C OCP 2x25G Type1 wRoCE 14e4 4140 NetXtreme E-Series Advanced Dual-port 25Gb SFP28 Network Daughter Card @@ -19065,16 +19375,30 @@ 1750 BCM57508 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet 14e4 2100 NetXtreme-E Dual-port 100G QSFP56 Ethernet PCIe4.0 x16 Adapter (BCM957508-P2100G) 14e4 5208 NetXtreme-E Dual-port 100G QSFP56 Ethernet OCP 3.0 Adapter (BCM957508-N2100G) + 14e4 d124 NetXtreme-E P2100D BCM57508 2x100G QSFP PCIE + 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet 1751 BCM57504 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet + 14e4 5045 NetXtreme-E BCM57504 4x25G OCP3.0 + 14e4 5250 NetXtreme-E BCM57504 4x25G KR Mezz + 14e4 d142 NetXtreme-E P425D BCM57504 4x25G SFP28 PCIE 1752 BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet 1800 BCM57502 NetXtreme-E Ethernet Partition 1801 BCM57504 NetXtreme-E Ethernet Partition 1802 BCM57508 NetXtreme-E Ethernet Partition + 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet Partition 1803 BCM57502 NetXtreme-E RDMA Partition 1804 BCM57504 NetXtreme-E RDMA Partition - 1805 BCM57508 NetXtreme-E RDMA Partition + 1805 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz RDMA Partition + 14e4 df24 NetXtreme-E NGM2100D BCM57508 2x100G KR Mezz RDMA Partition 1806 BCM5750X NetXtreme-E Ethernet Virtual Function + 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet Virtual Function 1807 BCM5750X NetXtreme-E RDMA Virtual Function + 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz RDMA Virtual Function + 1808 BCM5750X NetXtreme-E Ethernet Virtual Function + 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet Virtual Function + 1809 BCM5750X NetXtreme-E RDMA Virtual Function + 14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz RDMA Virtual Function + 2711 BCM2711 PCIe Bridge 3352 BCM3352 3360 BCM3360 4210 BCM4210 iLine10 HomePNA 2.0 @@ -19276,6 +19600,7 @@ 4410 BCM4413 iLine32 HomePNA 2.0 4411 BCM4413 V.90 56k modem 4412 BCM4412 10/100BaseT + 4415 BCM4359 802.11ac Dual-Band Wireless Network Controller 441f BCM4361 802.11ac Dual-Band Wireless Network Controller 4420 BCM4361 802.11ac 2.4 GHz Wireless Network Controller 4421 BCM4361 802.11ac 5 GHz Wireless Network Controller @@ -19546,6 +19871,7 @@ 0070 6902 WinTV HVR-4000-HD 0070 7801 WinTV HVR-1800 MCE 0070 9001 Nova-T DVB-T + 0070 9002 Nova-T DVB-T Model 909 0070 9200 Nova-SE2 DVB-S 0070 9202 Nova-S-Plus DVB-S 0070 9402 WinTV-HVR1100 DVB-T/Hybrid @@ -19836,6 +20162,7 @@ 9260 RCIM-II Real-Time Clock & Interrupt Module 9271 RCIM-III Real-Time Clock & Interrupt Module (PCIe) 9272 Pulse Width Modulator Card + 9273 RCIM-IV Real-Time Clock & Interrupt Module (PCIe) 9277 5 Volt Delta Sigma Converter Card 9278 10 Volt Delta Sigma Converter Card 9287 Analog Output Card @@ -20127,12 +20454,20 @@ 15b3 0021 MCX4421A-ACQN ConnectX-4 Lx EN OCP,2x25G 15b3 0025 ConnectX-4 Lx 25 GbE Dual Port SFP28 rNDC 193d 100a 620F-B +# NIC-ETH540F-LP-2P SFP+ Ethernet Card + 193d 1023 NIC-ETH540F-LP-2P + 193d 1031 NIC-ETH640i-Mb-2x25G +# NIC-ETH640F-3S-2P OCP3.0 Card + 193d 1083 NIC-ETH640F-3S-2P +# NIC-ETH540F-3S-2P OCP3.0 2x10G Card + 193d 1084 NIC-ETH540F-3S-2P 1016 MT27710 Family [ConnectX-4 Lx Virtual Function] 1017 MT27800 Family [ConnectX-5] 15b3 0006 ConnectX®-5 EN network interface card, 100GbE single-port QSFP28, PCIe3.0 x16, tall bracket; MCX515A-CCAT 15b3 0007 Mellanox ConnectX®-5 MCX516A-CCAT 15b3 0020 ConnectX®-5 EN network interface card, 10/25GbE dual-port SFP28, PCIe3.0 x8, tall bracket ; MCX512A-ACAT 15b3 0068 ConnectX®-5 EN network interface card for OCP2.0, Type 1, with host management, 25GbE dual-port SFP28, PCIe3.0 x8, no bracket Halogen free ; MCX542B-ACAN + 193d 1051 NIC-IB1040i-Mb-2P 1018 MT27800 Family [ConnectX-5 Virtual Function] 1019 MT28800 Family [ConnectX-5 Ex] 15b3 0008 ConnectX-5 Ex EN network interface card, 100GbE dual-port QSFP28, PCIe4.0 x16, tall bracket; MCX516A-CDAT @@ -20153,6 +20488,10 @@ 1979 MT2910 Family [ConnectX-7 PCIe Bridge] 197a MT43162 Family [BlueField-3 Lx SoC PCIe Bridge] 197b MT43244 Family [BlueField-3 SoC PCIe Bridge] + 2020 MT2892 Family [ConnectX-6 Dx Emulated PCIe Bridge] + 2021 MT42822 Family [BlueField-2 SoC Emulated PCIe Bridge] + 2023 MT2910 Family [ConnectX-7 Emulated PCIe Bridge] + 2024 MT43244 Family [BlueField-3 SoC Emulated PCIe Bridge] 4117 MT27712A0-FDCF-AE 1bd4 0039 SN10XMP2P25 1bd4 003a 25G SFP28 SP EO251FM9 Adapter @@ -20253,11 +20592,17 @@ 15b7 Sandisk Corp 2001 Skyhawk Series NVME SSD 5001 WD Black NVMe SSD - 5002 WD Black 2018 / PC SN720 NVMe SSD - 5003 WD Black 2018 / PC SN520 NVMe SSD - 5006 WD Black 2019/PC SN750 NVMe SSD + 5002 WD Black 2018/SN750 / PC SN720 NVMe SSD + 5003 WD Blue SN500 / PC SN520 NVMe SSD + 5004 PC SN520 NVMe SSD + 5005 PC SN520 NVMe SSD + 5006 WD Black SN750 / PC SN730 NVMe SSD 5009 WD Blue SN550 NVMe SSD 15b7 5009 WD Blue SN550 NVMe SSD + 500b PC SN530 NVMe SSD + 1414 500b Xbox Series X + 500d WD Ultrastar DC SN340 NVMe SSD + 5011 WD Black SN850 15b8 ADDI-DATA GmbH 1001 APCI1516 SP controller (16 digi outputs) 1003 APCI1032 SP controller (32 digi inputs w/ opto coupler) @@ -20563,6 +20908,9 @@ 2086 CryptoServer Se-Series Hardware Security Module c040 CryptoServer CSe-Series Hardware Security Module c051 CryptoServer Se-Series Gen2 Hardware Security Module + c070 u.trust Anchor Hardware Security Module cs7.2 Series + c071 u.trust Anchor Hardware Security Module cs7.3 Series + c072 u.trust Anchor Hardware Security Module cs7.3 Series Virtual Function # nee Atheros Communications, Inc. 168c Qualcomm Atheros 0007 AR5210 Wireless Network Adapter [AR5000 802.11a] @@ -21008,6 +21356,7 @@ ab08 21x4x DEC-Tulip compatible 10/100 Ethernet ab09 21x4x DEC-Tulip compatible 10/100 Ethernet 173b Altima (nee Broadcom) + 0001 AC1002 PCI Gigabit Ethernet controller 03e8 AC1000 Gigabit Ethernet 03e9 AC1001 Gigabit Ethernet 03ea AC9100 Gigabit Ethernet @@ -21055,6 +21404,10 @@ 0245 PCA7428CE_F1 - Analog Inputs isolated 0303 PCD-7006C Digital Input & Output PCI Card 0800 PCD8006 - PCIe digital Inputs/Outputs + 0840 PCA-8428 General-purpose multifunctional PCIe card with 8 analog inputs and 2 analog outputs + 0841 PCA-8429 General-purpose multifunctional PCIe card with 8 analog inputs + 0842 PCA-8438 General-purpose multifunctional PCIe card with 16 analog inputs and 2 analog outputs + 0843 PCA-8439 General-purpose multifunctional PCIe card with 16 analog inputs ff00 CTU CAN FD PCIe Card 1761 Pickering Interfaces Ltd 1771 InnoVISION Multimedia Ltd. @@ -21065,7 +21418,9 @@ 0004 Octeon (and older) FIPS 0005 Octeon CN38XX Network Processor Pass 3.x 0006 RoHS - 0010 Nitrox XL NPX + 0010 CN15XX/CN16XX [Nitrox PX] + 0011 CNN35XX [Nitrox III] + 0012 CNN55XX [Nitrox V] 0020 Octeon CN31XX Network Processor 0030 Octeon CN30XX Network Processor 0040 Octeon CN58XX Network Processor @@ -21232,8 +21587,10 @@ 8083 GL880 USB 1.1 UHCI controller 8084 GL880 USB 2.0 EHCI controller 9750 GL9750 SD Host Controller + 9755 GL9755 SD Host Controller e763 GL9763E eMMC Controller 17aa Lenovo + 3181 ThinkCentre M75n IoT 402b Intel 82599ES 10Gb 2-port Server Adapter X520-2 17ab Phillips Components 17af Hightech Information System Ltd. @@ -21256,13 +21613,15 @@ 1385 6d00 WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter 1737 0054 WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400 0105 MSM8998 PCIe Root Complex - 0108 SM8150/SA8195P PCIe Root Complex - 0300 MDM9x35 LTE Modem - 0301 MDM9640 PCIe Root Complex - 0302 MDM9x55 LTE Modem [Snapdragon X12] + 0108 SM8150 PCIe Root Complex + 0109 SA8195P PCIe Root Complex + 0300 MDM9x35 LTE Modem [Snapdragon X7] + 0301 MDM9x45 LTE Modem [Snapdragon X12] + 0302 MDM9x55 LTE Modem [Snapdragon X16] 0400 Datacenter Technologies QDF2432 PCI Express Root Port 0401 Datacenter Technologies QDF2400 PCI Express Root Port 1000 QCS405 PCIe Root Complex + 1101 QCA6390 Wireless Network Adapter [AX500-DBS (2x2)] 17cc NetChip Technology, Inc 2280 USB 2.0 17cd Cadence Design Systems, Inc. @@ -21743,6 +22102,8 @@ 0185 NT40A01 Network Adapter 01a5 NT200A01 Network Adapter 01c5 NT200A02 Network Adapter + 01d5 NT50B01 Network Adapter + 01e5 NT100A01 Network Adapter 18f6 NextIO 1000 [Nexsis] Switch Virtual P2P PCIe Bridge 1001 [Texsis] Switch Virtual P2P PCIe Bridge @@ -22137,6 +22498,7 @@ 0250 JMC250 PCI Express Gigabit Ethernet Controller 0260 JMC260 PCI Express Fast Ethernet Controller 0368 JMB368 IDE controller + 0585 JMB58x AHCI SATA controller 2360 JMB360 AHCI Controller 2361 JMB361 AHCI/IDE 1462 7235 P965 Neo MS-7235 mainboard @@ -22281,13 +22643,25 @@ 19e5 d303 Hi1822 SP522 (2*8G FC) 19e5 d306 Hi1822 SP523 (2*8G FC) 1710 iBMA Virtual Network Adapter - 1711 Hi1710 [iBMC Intelligent Management system chip w/VGA support] + 1711 Hi171x Series [iBMC Intelligent Management system chip w/VGA support] 1822 Hi1822 Family (4*25GE) 19e5 d129 Hi1822 SP570 (4*25GE) 19e5 d136 Hi1822 SP580 (4*25GE) 19e5 d141 Hi1822 SP583 (4*25GE) 19e5 d146 Hi1822 SP585 (4*25GE) + 3714 ES3000 V5 NVMe PCIe SSD + 19e5 5312 NVMe SSD ES3500P V5 2000GB 2.5" U.2 371e Hi1822 Family Virtual Bridge + 3754 ES3000 V6 NVMe PCIe SSD + 19e5 6122 NVMe SSD ES3600P V6 1600GB 2.5" U.2 + 19e5 6123 NVMe SSD ES3600P V6 3200GB 2.5" U.2 + 19e5 6124 NVMe SSD ES3600P V6 6400GB 2.5" U.2 + 19e5 6141 NVMe SSD ES3800P V6 800GB 2.5" U.2 + 19e5 6142 NVMe SSD ES3800P V6 1600GB 2.5" U.2 + 19e5 6212 NVMe SSD ES3500P V6 1920GB 2.5" U.2 + 19e5 6213 NVMe SSD ES3500P V6 3840GB 2.5" U.2 + 19e5 6214 NVMe SSD ES3500P V6 7680GB 2.5" U.2 + 19e5 6215 NVMe SSD ES3500P V6 15360GB 2.5" U.2 375e Hi1822 Family Virtual Function 379e Hi1822 Family Virtual Function a120 HiSilicon PCIe Root Port with Gen4 @@ -22382,13 +22756,17 @@ 1a4a SLAC National Accelerator Lab TID-AIR 1000 MCOR Power Supply Controller 1010 AMC EVR - Stockholm Timing Board - 1020 Cluster On Board (COB) Ethernet Switch + 1020 PGPCard - Gen3 Cameralink Interface + 1030 PGPCard - Gen3 GIGe Interface 2000 PGPCard - 4 Lane 2001 PGPCard - 8 Lane Plus EVR 2010 PCI-Express EVR -# PC-260-101-03 - 2020 PGP-GEN3 PCIe + 2011 PCI-Express EVR - TPR Version + 2020 PGP-GEN3 PCIe - 8 Lane Plus EVR 2030 AXI Stream DAQ PCIe card + 2040 EXO PCIe TEM + 3000 COB DTM V1 + 3001 COB DTM V2 1a51 Hectronic AB 1a55 Rohde & Schwarz DVS GmbH 0010 SDStationOEM @@ -22583,6 +22961,7 @@ 1052 Virtio input # virtio 1.0 1053 Virtio socket + 105a Virtio file system 1110 Inter-VM shared memory 1af4 1100 QEMU Virtual Machine 1af5 Netezza Corp. @@ -22595,10 +22974,12 @@ 1b13 Jaton Corp 1b1a K&F Computing Research Co. 0e70 GRAPE +1b1c Corsair 1b21 ASMedia Technology Inc. 0611 ASM1061 SATA IDE Controller 0612 ASM1062 Serial ATA Controller 1849 0612 Motherboard + 1040 ASM1040 XHCI Controller 1042 ASM1042 SuperSpeed USB Host Controller 1043 1059 K53SM motherboard 1043 8488 P8B WS Motherboard @@ -22606,11 +22987,14 @@ 1080 ASM1083/1085 PCIe to PCI Bridge 1849 1080 Motherboard 1142 ASM1042A USB 3.0 Host Controller - 1184 ASM1184e PCIe Switch Port - 1849 1184 ASM1184e PCIe Switch + 1182 ASM1182e 2-Port PCIe x1 Gen2 Packet Switch + 1b21 118f ASM1182e 2-Port PCIe x1 Gen2 Packet Switch + 1184 ASM1184e 4-Port PCIe x1 Gen2 Packet Switch + 1849 1184 ASM1184e 4-Port PCIe x1 Gen2 Packet Switch 1242 ASM1142 USB 3.1 Host Controller 1343 ASM1143 USB 3.1 Host Controller 2142 ASM2142 USB 3.1 Host Controller + 1462 7a72 H270 PC MATE 3242 ASM3242 USB 3.2 Host Controller 1b26 Netcope Technologies, a.s. c132 COMBO-LXT155 @@ -22642,6 +23026,7 @@ 000b QEMU PCIe Expander bridge 000c QEMU PCIe Root port 000d QEMU XHCI Host Controller + 0010 QEMU NVM Express Controller 0100 QXL paravirtual graphic card 1af4 1100 QEMU Virtual Machine 1b37 Signal Processing Devices Sweden AB @@ -22676,8 +23061,12 @@ 0601 NumaChip N601 0602 NumaChip N602 1b4b Marvell Technology Group Ltd. +# device 1b4b:0100 reports incorrect vendor id due to hw erratum (correct is 11ab) + 0100 88F3700 [Armada 3700 Family] ARM SoC 0640 88SE9128 SATA III 6Gb/s RAID Controller 2241 88NR2241 Non-Volatile memory controller + 1028 2112 BOSS-N1 Monolithic + 1028 2113 BOSS-N1 Modular 1d49 0306 ThinkSystem M.2 NVMe 2-Bay RAID Enablement Kit 1d49 0307 ThinkSystem 7mm NVMe 2-Bay Rear RAID Enablement Kit 9120 88SE9120 SATA 6Gb/s Controller @@ -22690,12 +23079,14 @@ 9172 88SE9172 SATA 6Gb/s Controller 9178 88SE9170 PCIe SATA 6Gb/s Controller 917a 88SE9172 SATA III 6Gb/s RAID Controller + 9182 88SE9182 PCIe 2.0 x2 2-port SATA 6 Gb/s 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 + 9215 88SE9215 PCIe 2.0 x1 4-port SATA 6 Gb/s Controller 9220 88SE9220 PCIe 2.0 x2 2-port SATA 6 Gb/s RAID Controller - 9230 88SE9230 PCIe SATA 6Gb/s Controller + 9230 88SE9230 PCIe 2.0 x2 4-port SATA 6 Gb/s RAID Controller 1028 1fd6 BOSS-S1 Adapter 1028 1fdf BOSS-S1 Modular 1028 1fe2 BOSS-S1 Adapter @@ -22747,6 +23138,17 @@ 1b94 Signatec / Dynamic Signals Corp e400 PX14400 Dual Xilinx Virtex5 based Digitizer 1b96 Western Digital + 2200 Ultrastar DC SN630 NVMe SSD + 2201 Ultrastar DC SN630 NVMe SSD + 2300 Ultrastar DC SN840 NVMe SSD + 2400 Ultrastar DC SN640 NVMe SSD + 2401 Ultrastar DC SN640 NVMe SSD + 2402 Ultrastar DC SN640 NVMe SSD + 2404 Ultrastar DC SN640 NVMe SSD + 2500 Ultrastar DC SN840 NVMe SSD + 2600 Ultrastar DC ZN540 ZNS NVMe SSD + 3714 PC SN730 NVMe SSD + 3734 PC SN730 NVMe SSD 1b9a XAVi Technologies Corp. 1baa QNAP Systems, Inc. 1bad ReFLEX CES @@ -22804,6 +23206,8 @@ # Kersey 2.5" TCG 1bb1 0152 Nytro 5520 TCG 1bb1 01a1 Nytro XP7102 + 5012 FireCuda 510 SSD + 5016 FireCuda 520 SSD 1bb3 Bluecherry 4304 BC-04120A MPEG4 4 port video encoder / decoder 4309 BC-08240A MPEG4 4 port video encoder / decoder @@ -22818,6 +23222,16 @@ 1bbf Maxeler Technologies Ltd. 0003 MAX3 0004 MAX4 +1bc0 Innodisk Corporation + 1001 PCIe 3TG6-P Controller + 1002 PCIe 3TE6 Controller + 1160 PCIe 3TE2 Controller + 1321 PCIe 4TG-P Controller + 1322 PCIe 4TE Controller + 2262 PCIe 3TG3-P Controller + 5208 PCIe 3TE7 Controller + 5216 PCIe 3TE8 Controller + 5236 PCIe 4TG2-P Controller 1bcf NEC Corporation 001c Vector Engine 1.0 1bd0 Astronics Corporation @@ -22825,9 +23239,17 @@ 1002 PM1553-5 (PC/104+ MIL-STD-1553 Interface Card) 1004 AB3000 Series Rugged Computer 1005 PE1000 (Multi-Protocol PCIe/104 Interface Card) + 1006 webCS Wireless Aircraft Communications Server + 1007 AB3000 Series Rugged Computer (Series N) + 1008 ME1000 mPCIe Avionics Interface Card + 100a NG1 Series Avionics Converter 1101 OmniBus II PCIe Multi-Protocol Interface Card 1102 OmniBusBox II Multi-Protocol Interface Core 1103 OmniBus II cPCIe/PXIe Multi-Protocol Interface Card + 1200 NG3 Series Mil-Std-1553 Interface + 1201 NG3 Series ARINC 429 Interface + 1202 NG3 Series Avionics Discrete & Serial Interface + 1203 NG3 Series Avionics Discrete Interface 1bd4 Inspur Electronic Information Industry Co., Ltd. 0911 Arria10_PCIe_F10A1150 1bee IXXAT Automation GmbH @@ -22860,6 +23282,7 @@ 001b FD720 001c FD922 001d Vega + 001f FD940 1c28 Lite-On IT Corp. / Plextor 0122 M6e PCI Express SSD [Marvell 88SS9183] # previously Fiberblaze @@ -22880,6 +23303,8 @@ 00e1 PacketMover 2x100Gb [Tivoli] 00e3 PacketMover 2x10Gb [Tivoli] 00e5 PacketMover 2x10Gb [Corfu] + 1000 SmartNIC N5010 4x100Gb + 1001 SmartNIC N5011 w/2xE810 4x100Gb a000 FBC2CGG3 Capture 2x40Gb [Mango_02] a001 FBC2CGG3 Capture 2x100Gb [Mango_02] a003 FBC2CGG3 Capture 16x10Gb [Mango] @@ -22920,16 +23345,21 @@ 1284 PC300 NVMe Solid State Drive 512GB 1285 PC300 NVMe Solid State Drive 1TB 1327 BC501 NVMe Solid State Drive 512GB + 1339 BC511 1504 SC300 512GB M.2 2280 SATA Solid State Drive + 1527 PC401 NVMe Solid State Drive 256GB 243b PE6110 NVMe Solid State Drive 1c5c 0100 PE6110 NVMe Solid State Drive 2839 PE8000 Series NVMe Solid State Drive 1c5c 0100 PE8000 Series NVMe Solid State Drive 1c5f Beijing Memblaze Technology Co. Ltd. - 000d PBlaze5 520/526 AIC - 003d PBlaze5 920/926 AIC - 010d PBlaze5 520/526 U.2 - 013d PBlaze5 920/926 U.2 + 000d PBlaze5 520/526 + 003d PBlaze5 920/926 + 003e PBlaze6 6920 + 1c5f 0a31 NVMe SSD PBlaze6 6920 3840GB 2.5" U.2 + 1c5f 0a41 NVMe SSD PBlaze6 6920 7680GB 2.5" U.2 + 1c5f 4a31 NVMe SSD PBlaze6 6920 3200GB 2.5" U.2 + 1c5f 4a41 NVMe SSD PBlaze6 6920 6400GB 2.5" U.2 0540 PBlaze4 NVMe SSD 0550 PBlaze5 700/900 0555 PBlaze5 510/516 @@ -22946,6 +23376,10 @@ 0001 Hunter PCI Express 1c8c Mobiveil, Inc. 1cb0 Shannon Systems + 8266 Andalusia Series SSD + 1cb0 2021 Andalusia Series OCS U.2 SSD + 1cb0 2121 Andalusia Series ZNS U.2 SSD + 1cb0 2f21 Andalusia Series NVMe U.2 SSD d000 Venice NVMe SSD 1cb0 2010 Venice-E Series OCS U.2 1cb0 2011 Venice Series OCS U.2 @@ -22985,6 +23419,7 @@ 0305 Simulyzer-RT CompactPCI Serial CAN-1 card # supports 8x CAN (-FD) interfaces 0306 Simulyzer-RT CompactPCI Serial CAN-2 card (CAN-FD) + 0307 Simulyzer-RT CompactPCI Serial DIO-2 card [Xilinx Zynq UltraScale+] 1cd7 Nanjing Magewell Electronics Co., Ltd. 0010 Pro Capture Endpoint 0014 PRO CAPTURE AIO 4K PLUS @@ -23006,12 +23441,14 @@ 0009 ExaNIC X25 000a ExaNIC X100 000b ExaNIC V9P + 000c ExaNIC V9P-3 0100 ExaDISK FX1 1cf0 Akitio 1cf7 Subspace Dynamics 1d00 Pure Storage 1d05 Tongfang Hongkong Limited 1d0f Amazon.com, Inc. + 8061 NVMe EBS Controller cd01 NVMe SSD Controller ec20 Elastic Network Adapter (ENA) efa0 Elastic Fabric Adapter (EFA) @@ -23142,6 +23579,12 @@ 1014 AR-MAN-U280 [Manitou Class Accelerator for U280] 1015 AR-ARK-BBDEV-FX0 [Arkville 32B DPDK Baseband Device] 1016 AR-ARK-BBDEV-FX1 [Arkville 64B DPDK Baseband Device] + 1017 AR-ARK-FX1 [Arkville 64B Multi-Homed Primary Endpoint] + 1018 AR-ARK-FX1 [Arkville 64B Multi-Homed Secondary Endpoint] + 1019 AR-ARK-FX1 [Arkville 64B Multi-Homed Tertiary Endpoint] + 101a AR-ARK-SRIOV-FX0 [Arkville 32B Primary Physical Function] + 101b AR-ARK-SRIOV-FX1 [Arkville 64B Primary Physical Function] + 101c AR-ARK-SRIOV-VF [Arkville Virtual Function] 4200 A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument] 1d72 Xiaomi 1d78 DERA Storage @@ -23159,15 +23602,19 @@ 1d78 3105 D5457 U.2 3.2TB NVMe SSD 1d78 3107 D5457 U.2 6.4TB NVMe SSD 1d7c Aerotech, Inc. +# Fiber-optic HyperWire motion control bus from Aerotech. + 0001 HyperWire Adapter 1d82 NETINT Technologies Inc. 0101 Codensity D400 SSD 0102 Codensity D408 PCIe Gen4 NVMe SSD 0202 Codensity T408 Video Encoding-Decoding Accelerator -1d87 Fuzhou Rockchip Electronics Co., Ltd +# nee Fuzhou Rockchip Electronics Co., Ltd +1d87 Rockchip Electronics Co., Ltd 0100 RK3399 PCI Express Root Port 1808 RK1808 Neural Network Processor Card + 3566 RK3568 Remote Signal Processor 1d8f Enyx -1d93 YADRO (KNS Group) +1d93 YADRO 1d94 Chengdu Haiguang IC Design Co., Ltd. 1450 Root Complex 1451 I/O Memory Management Unit @@ -23202,15 +23649,19 @@ 0001 Colossus GC2 [C2] 0002 Colossus GC1 [S1] 1d97 Shenzhen Longsys Electronics Co., Ltd. + 2263 SM2263EN/SM2263XT-based OEM SSD 1d9b Facebook, Inc. 0010 Networking DOM Engine 0011 IO Bridge 1da1 Teko Telecom S.r.l. 1da2 Sapphire Technology Limited + e26a Radeon R7 250 1da3 Habana Labs Ltd. 0001 HL-1000 AI Inference Accelerator [Goya] # PCIe accelerator card for Deep Learning training tasks 1000 HL-2000 AI Training Accelerator [Gaudi] +# PCIe accelerator card for Deep Learning training tasks with secured firmware + 1010 HL-2000 AI Training Accelerator [Gaudi secured] 1db2 ATP ELECTRONICS INC 1dbb NGD Systems, Inc. 1dbf Guizhou Huaxintong Semiconductor Technology Co., Ltd @@ -23222,61 +23673,68 @@ 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB 1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB 1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB - 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card - 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC + 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card + 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card 1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card 1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card - 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card + 1dd8 400d DSP DSC-100 Ent 100Gb Card + 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card 1001 DSC Virtual Downstream Port 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB 1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB 1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB - 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card - 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC + 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card + 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card 1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card 1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card - 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card + 1dd8 400d DSP DSC-100 Ent 100Gb Card + 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card 1002 DSC Ethernet Controller 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB 1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB 1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB - 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card - 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC + 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card + 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card 1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card 1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card - 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card + 1dd8 400d DSP DSC-100 Ent 100Gb Card + 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card 1003 DSC Ethernet Controller VF 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB 1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB 1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB - 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card - 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC + 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card + 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card 1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card 1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card - 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card + 1dd8 400d DSP DSC-100 Ent 100Gb Card + 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card 1004 DSC Management Controller 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB 1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB 1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB - 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card - 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC + 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card + 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card 1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card 1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card - 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card + 1dd8 400d DSP DSC-100 Ent 100Gb Card + 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card 1007 DSC Storage Accelerator 1dd8 4000 Naples 100Gb 2-port QSFP28 x16 8GB 1dd8 4001 Naples 100Gb 2-port QSFP28 x16 4GB 1dd8 4002 Naples 25Gb 2-port SFP28 x8 4GB - 1dd8 4007 DSP DSC-25 10/25G 2p OCP Card - 1dd8 4008 DSC-25 10/25G 2-port SFP28 x8 4GB RAM 8GB eMMC + 1dd8 4007 DSP DSC-25 Ent 10/25G OCP3 Card + 1dd8 4008 DSP DSC-25 10/25G 2p SFP28 Card 1dd8 400a DSC-100 40/100G 2-port 8G RAM 16G eMMC G1 Services Card 1dd8 400c DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card - 1dd8 400d DSP DSC-100 100G 2p QSFP28 Card + 1dd8 400d DSP DSC-100 Ent 100Gb Card + 1dd8 400e DSC-25 10/25G 2-port 4G RAM 8G eMMC G1 Services Card 1de0 Groq - 0000 Q100 Tensor Streaming Processor +# rename due to conflict with a term in use by another company for an entirely different product. + 0000 TSP100 Tensor Streaming Processor 1de1 Tekram Technology Co.,Ltd. 0391 TRM-S1040 [DC-315 / DC-395 series] - 2020 DC-390 + 2020 DC-390 Series SCSI Adapter [AMD Am53C974] 690c 690c dc29 DC290 1de5 Eideticom, Inc @@ -23293,6 +23751,42 @@ e00a eMAG PCI Express Root Port 5 e00b eMAG PCI Express Root Port 6 e00c eMAG PCI Express Root Port 7 +# Root Complex A (RCA) + e100 Altra PCI Express Root Complex A +# RCA port 0 + e101 Altra PCI Express Root Port a0 +# RCA port 1 + e102 Altra PCI Express Root Port a1 +# RCA port 2 + e103 Altra PCI Express Root Port a2 +# RAC port 3 + e104 Altra PCI Express Root Port a3 +# RCA port 4 + e105 Altra PCI Express Root Port a4 +# RCA port 5 + e106 Altra PCI Express Root Port a5 +# RCA port 6 + e107 Altra PCI Express Root Port a6 +# RCA port 7 + e108 Altra PCI Express Root Port a7 +# Root Complex B (RCB) + e110 Altra PCI Express Root Complex B +# RCB port 0 + e111 Altra PCI Express Root Port b0 +# RCB port 1 + e112 Altra PCI Express Root Port b1 +# RCB port 2 + e113 Altra PCI Express Root Port b2 +# RCB port 3 + e114 Altra PCI Express Root Port b3 +# RCB port 4 + e115 Altra PCI Express Root Port b4 +# RCB port 5 + e116 Altra PCI Express Root Port b5 +# RCB port 6 + e117 Altra PCI Express Root Port b6 +# RCB port 7 + e118 Altra PCI Express Root Port b7 1df3 Ethernity Networks 0201 ACE-NIC40 Programmable Network Accelerator 1df3 0001 ENA1040 @@ -23316,6 +23810,12 @@ 0206 ACE-NIC200 Programmable Network Accelerator 1df3 0000 Maintenance Mode 1df3 0001 ENA2200F + 0207 ACE-NIC50RN Programmable Network Accelerator + 1df3 0000 Maintenance Mode + 1df3 0001 ENA2050RN + 0208 ACE-NIC100RN Programmable Network Accelerator + 1df3 0000 Maintenance Mode + 1df3 0001 ENA2100RN 1df7 opencpi.org 0001 ml605 0002 alst4 @@ -23344,6 +23844,8 @@ 1028 210f Dell Ent NVMe FIPS CM6 MU 3.2TB 1028 2110 Dell Ent NVMe FIPS CM6 MU 6.4TB 1e0f 0001 Generic NVMe CM6 RI 3.84TB + 0009 NVMe SSD + 1e0f 0001 Toshiba RC500 NVMe SSD 500GB 1e17 Arnold & Richter Cine Technik GmbH & Co. Betriebs KG 1e24 Squirrels Research Labs 0101 Acorn CLE-101 @@ -23359,9 +23861,39 @@ 1e26 Fujitsu Client Computing Limited 1e36 Shanghai Enflame Technology Co. Ltd 0001 T10 [CloudBlazer] + 0002 T11 [CloudBlazer] + 0003 T10(QSFP-DD) [CloudBlazer] + 8011 I10 [CloudBlazer] + 8012 I10L [CloudBlazer] # nee Thinci, Inc 1e38 Blaize, Inc 0102 Xplorer X1600 +1e3b Shenzhen DAPU Microelectronics Co., Ltd + 1098 Haishen NVMe SSD + 1e3b 0001 Enterprise NVMe SSD U.2 0.8TB (H2100) + 1e3b 0002 Enterprise NVMe SSD U.2 0.96TB (H2200) + 1e3b 0004 Enterprise NVMe SSD U.2 1.6TB (H2100) + 1e3b 0005 Enterprise NVMe SSD U.2 1.92TB (H2200) + 1e3b 0009 Enterprise NVMe SSD U.2 0.8TB (H3100) + 1e3b 000a Enterprise NVMe SSD U.2 0.96TB (H3200) + 1e3b 000c Enterprise NVMe SSD U.2 1.6TB (H3100) + 1e3b 000d Enterprise NVMe SSD U.2 1.92TB (H3200) + 1e3b 0014 Enterprise NVMe SSD U.2 3.2TB (H3100) + 1e3b 0015 Enterprise NVMe SSD U.2 3.84TB (H3200) + 1e3b 0021 Enterprise NVMe SSD U.2 6.4TB (H3100) + 1e3b 0022 Enterprise NVMe SSD U.2 7.68TB (H3200) + 1e3b 0061 Enterprise NVMe SSD HHHL 0.8TB (H2100) + 1e3b 0062 Enterprise NVMe SSD HHHL 0.96TB (H2200) + 1e3b 0064 Enterprise NVMe SSD HHHL 1.6TB (H2100) + 1e3b 0065 Enterprise NVMe SSD HHHL 1.92TB (H2200) + 1e3b 006c Enterprise NVMe SSD HHHL 0.8TB (H3100) + 1e3b 006d Enterprise NVMe SSD HHHL 0.96TB (H3200) + 1e3b 006f Enterprise NVMe SSD HHHL 1.6TB (H3100) + 1e3b 0070 Enterprise NVMe SSD HHHL 1.92TB (H3200) + 1e3b 007c Enterprise NVMe SSD HHHL 3.2TB (H3100) + 1e3b 007d Enterprise NVMe SSD HHHL 3.84TB (H3200) + 1e3b 007f Enterprise NVMe SSD HHHL 6.4TB (H3100) + 1e3b 0080 Enterprise NVMe SSD HHHL 7.68TB (H3200) 1e3d Burlywood, Inc 1e49 Yangtze Memory Technologies Co.,Ltd 1e4b MAXIO Technology (Hangzhou) Ltd. @@ -23373,11 +23905,13 @@ 1601 NVMe SSD Controller MAP1601 1e4c GSI Technology # Associative Processing Unit (APU) - 0010 APU [Leda-G] + 0010 APU [Leda] 1e4c 0120 SE120 1e57 Beijing Panyi Technology Co., Ltd 0100 The device has already been deleted. 0000 0100 PY8800 64GB Accelerator +1e60 Hailo Technologies Ltd. + 2864 Hailo-8 AI Processor 1e6b Axiado Corp. 1e7b Dataland 1e7c Brainchip Inc @@ -23389,9 +23923,21 @@ # aka SED Systems 1e94 Calian SED 1e95 Solid State Storage Technology Corporation +1ea0 Tencent Technology (Shenzhen) Company Limited + 2a16 Cloud Intelligent Inference Controller +1eab Hefei DATANG Storage Technology Co.,LTD. + 300a NVMe SSD Controller 300A + 300b NVMe SSD Controller 300B 1eae XFX Limited 1eb1 VeriSilicon Inc 1001 Video Accelerator +1ebd EMERGETECH Company Ltd. + 0101 Seirios 2063 Video Codec +1ed3 Yeston +1ed8 Digiteq Automotive + 0101 FG4 PCIe Frame Grabber +1ed9 Myrtle.ai +1ee9 SUSE LLC # nee Tumsan Oy 1fc0 Ascom (Finland) Oy 0300 E2200 Dual E1/Rawpipe Card @@ -23473,7 +24019,11 @@ 2348 Racore 2010 8142 100VG/AnyLAN 2646 Kingston Technology Company, Inc. - 2263 A2000, M.2, 500GB + 0010 HyperX Predator PCIe AHCI SSD + 2262 KC2000 NVMe SSD + 2263 A2000 NVMe SSD + 5008 U-SNS8154P3 NVMe SSD + 500d OM3PDP3 NVMe SSD 270b Xantel Corporation 270f Chaintech Computer Co. Ltd 2711 AVID Technology Inc. @@ -23638,7 +24188,8 @@ 7053 CH353 PCI Dual Serial and Parallel Ports Controller 7073 CH356 PCI Quad Serial and Parallel Ports Controller 7173 CH355 PCI Quad Serial Port Controller -434e CAST Navigation LLC +434e Cornelis Networks +43bc Tiger Lake-H PCIe Root Port #5 4444 Internext Compression Inc 0016 iTVC16 (CX23416) Video Decoder 0070 0003 WinTV PVR 250 @@ -24224,6 +24775,7 @@ 0100 2nd Generation Core Processor Family DRAM Controller 1028 04aa XPS 8300 1043 844d P8P67/P8H67 Series Motherboard + 8086 200d DH61CR 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] @@ -24303,21 +24855,31 @@ 1043 844d P8B WS Motherboard 0172 Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller 0176 3rd Gen Core processor Graphics Controller + 0201 Arctic Sound 0284 Comet Lake PCH-LP LPC Premium Controller/eSPI Controller 02a3 Comet Lake PCH-LP SMBus Host Controller 02a4 Comet Lake SPI (flash) Controller 02a6 Comet Lake North Peak + 02b0 Comet Lake PCI Express Root Port #9 + 02b1 Comet Lake PCI Express Root Port #10 + 02b3 Comet Lake PCI Express Root Port #12 + 02b4 Comet Lake PCI Express Root Port #13 + 02b8 Comet Lake PCI Express Root Port #1 + 02bc Comet Lake PCI Express Root Port #5 + 02c5 Comet Lake Serial IO I2C Host Controller 02c8 Comet Lake PCH-LP cAVS 02d3 Comet Lake SATA AHCI Controller 02e0 Comet Lake Management Engine Interface 02e8 Serial IO I2C Host Controller 02e9 Comet Lake Serial IO I2C Host Controller + 02ea Comet Lake PCH-LP LPSS: I2C Controller #2 02ed Comet Lake PCH-LP USB 3.1 xHCI Host Controller 02ef Comet Lake PCH-LP Shared SRAM 02f0 Comet Lake PCH-LP CNVi WiFi 8086 0034 Wireless-AC 9560 160MHz 8086 0070 Wi-Fi 6 AX201 160MHz 8086 0074 Wi-Fi 6 AX201 160MHz + 8086 4070 Wireless-AC 9462 80MHz 02f5 Comet Lake PCH-LP SCS3 02f9 Comet Lake Thermal Subsytem 02fc Comet Lake Integrated Sensor Solution @@ -24350,7 +24912,9 @@ 0406 Haswell Integrated Graphics Controller 040a Xeon E3-1200 v3 Processor Integrated Graphics Controller 0412 Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller + 1028 05d7 Alienware X51 R2 103c 1998 EliteDesk 800 G1 + 17aa 3098 ThinkCentre E73 17aa 309f ThinkCentre M83 0416 4th Gen Core Processor Integrated Graphics Controller 17aa 220e ThinkPad T440p @@ -24410,9 +24974,12 @@ 06ab Comet Lake PCH Serial IO SPI Controller #1 06ac Comet Lake PCI Express Root Port #21 06b0 Comet Lake PCI Express Root Port #9 + 06bd Comet Lake PCIe Port #6 06c0 Comet Lake PCI Express Root Port #17 06c8 Comet Lake PCH cAVS + 06d2 Comet Lake SATA AHCI Controller 06e0 Comet Lake HECI Controller + 06e3 Comet Lake Keyboard and Text (KT) Redirection 06e8 Comet Lake PCH Serial IO I2C Controller #0 06e9 Comet Lake PCH Serial IO I2C Controller #1 06ea Comet Lake PCH Serial IO I2C Controller #2 @@ -24895,7 +25462,9 @@ 1028 1fe7 Express Flash NVMe 3.2TB 2.5" U.2 (P4600) 1028 1fe8 Express Flash NVMe 2.0TB HHHL AIC (P4600) 1028 1fe9 Express Flash NVMe 4.0TB HHHL AIC (P4600) - 0b60 NVMe DC SSD [3DNAND, Beta Rock Controller] + 0b26 Thunderbolt 4 Bridge [Goshen Ridge 2020] + 0b27 Thunderbolt 4 USB Controller [Goshen Ridge 2020] + 0b60 NVMe DC SSD [3DNAND, Sentinel Rock Controller] 1028 2060 NVMe SED MU U.2 1.6TB (P5600) 1028 2061 NVMe SED MU U.2 3.2TB (P5600) 1028 2062 NVMe SED MU U.2 6.4TB (P5600) @@ -24908,6 +25477,10 @@ 1028 2102 NVMe RI U.2 1.92TB (P5500) 1028 2103 NVMe RI U.2 3.84TB (P5500) 1028 2104 NVMe RI U.2 7.68TB (P5500) + 8086 8008 NVMe Datacenter SSD [3DNAND] SE 2.5" U.2 (P5510) + 8086 8d08 NVMe Datacenter SSD [3DNAND] VE 2.5" U.2 (P5316) + 8086 8d1d NVMe Datacenter SSD [3DNAND] VE E1.L 9.5/18mm (P5316) + 0bd0 Ponte Vecchio 2T 0be0 Atom Processor D2xxx/N2xxx Integrated Graphics Controller 0be1 Atom Processor D2xxx/N2xxx Integrated Graphics Controller 105b 0d7c D270S/D250S Motherboard @@ -24935,7 +25508,9 @@ 0bf6 Atom Processor D2xxx/N2xxx DRAM Controller 0bf7 Atom Processor D2xxx/N2xxx DRAM Controller 0c00 4th Gen Core Processor DRAM Controller + 1028 05d7 Alienware X51 R2 103c 1998 EliteDesk 800 G1 + 17aa 3098 ThinkCentre E73 17aa 309f ThinkCentre M83 0c01 Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller 0c04 Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller @@ -25686,7 +26261,7 @@ 103c 2159 Ethernet 10Gb 2-port 562i Adapter 108e 7b11 Ethernet Server Adapter X520-2 1170 004c 82599 DP 10G Mezzanine Adapter - 15d9 0611 AOC-STGN-I2S [REV 1.01] + 15d9 0611 AOC-STGN-i2S 1734 11a9 10 Gigabit Dual Port Network Connection 17aa 1071 ThinkServer X520-2 AnyFabric 17aa 4007 82599ES 10-Gigabit SFI/SFP+ Network Connection @@ -25723,6 +26298,9 @@ 8086 4532 Desktop Board D815EEA2/D815EFV 8086 4541 D815EEA Motherboard 8086 4557 D815EGEW Mainboard + 1136 Thunderbolt 4 Bridge [Maple Ridge 4C 2020] + 1137 Thunderbolt 4 NHI [Maple Ridge 4C 2020] + 1138 Thunderbolt 4 USB Controller [Maple Ridge 4C 2020] 1161 82806AA PCI64 Hub Advanced Programmable Interrupt Controller 8086 1161 82806AA PCI64 Hub APIC 1162 Xscale 80200 Big Endian Companion Chip @@ -25933,6 +26511,10 @@ 123f 82466GX Integrated Hot-Plug Controller (IHPC) 1240 82752 (752) AGP Graphics Accelerator 124b 82380FB (MPCI2) Mobile Docking Controller + 124c Ethernet Connection E823-L for backplane + 124d Ethernet Connection E823-L for SFP + 124e Ethernet Connection E823-L/X557-AT 10GBASE-T + 124f Ethernet Connection E823-L 1GbE 1250 430HX - 82439HX TXC [Triton II] 1360 82806AA PCI64 Hub PCI Bridge 1361 82806AA PCI64 Hub Controller (HRes) @@ -25952,6 +26534,7 @@ 1503 82579V Gigabit Network Connection 1043 849c P8P67 Deluxe Motherboard 10cf 161c LIFEBOOK E752 + 8086 200d DH61CR motherboard 1507 Ethernet Express Module X520-P2 1508 82598EB Gigabit BX Network Connection 1509 82580 Gigabit Network Connection @@ -25984,6 +26567,7 @@ 151b CVL2510 Thunderbolt Controller [Light Peak 2C 2010] 151c 82599 10 Gigabit TN Network Connection 108e 7b13 Dual 10GBASE-T LP + 151d Ethernet Connection E823-L for QSFP 1520 I350 Ethernet Controller Virtual Function 1521 I350 Gigabit Network Connection 1028 0602 Gigabit 2P I350-t LOM @@ -26012,12 +26596,15 @@ 1093 775b PCIe-8237 Ethernet Adapter 10a9 802a UV2-BaseIO dual-port GbE 1137 023e 1GigE I350 LOM + 15d9 0000 AOC-SGP-i4 15d9 0652 Dual Port i350 GbE MicroLP [AOC-CGP-i2] 17aa 1074 ThinkServer I350-T4 AnyFabric 17aa 4005 I350 Gigabit Network Connection 18d4 0c07 I350 1Gb 2-port RJ45 OCP Mezz Card MOP41-I-1GT2 193d 1005 360T-B 193d 1007 360T-L +# NIC-ETH360T-3S-4P OCP3.0 4x1G Base-T Card + 193d 1080 NIC-ETH360T-3S-4P 1bd4 001d 1G base-T QP EP014Ti1 Adapter 1bd4 0035 1G base-T QP EP014Ti1 Adapter 8086 0001 Ethernet Server Adapter I350-T4 @@ -26170,6 +26757,7 @@ 156f Ethernet Connection I219-LM 1028 06dc Latitude E7470 103c 8079 EliteBook 840 G3 + 17aa 2247 ThinkPad T570 1570 Ethernet Connection I219-V 1571 Ethernet Virtual Function 700 Series 1572 Ethernet Controller X710 for 10GbE SFP+ @@ -26188,7 +26776,12 @@ 17aa 0000 ThinkServer X710 AnyFabric for 10GbE SFP+ 17aa 4001 ThinkServer X710-4 AnyFabric for 10GbE SFP+ 17aa 4002 ThinkServer X710-2 AnyFabric for 10GbE SFP+ + 193d 1020 NIC-ETH561F-sL-4x10G + 193d 1021 NIC-ETH561F-sL-2x10G +# NIC-ETH561F-3S-2P OCP3.0 2x10G SFP+ Card + 193d 1081 NIC-ETH561F-3S-2P 19e5 d11c Ethernet 2-port X710 10Gb SFP+ Adapter SP330 + 1bd4 0042 10G SFP+ DP EP102Fi4 Adapter 1bd4 0056 Ethernet Network Adapter X710-BM2 for OCP NIC 3.0 8086 0000 Ethernet Converged Network Adapter X710 8086 0001 Ethernet Converged Network Adapter X710-4 @@ -26221,6 +26814,7 @@ 1577 DSL6540 Thunderbolt 3 NHI [Alpine Ridge 4C 2015] 1578 DSL6540 Thunderbolt 3 Bridge [Alpine Ridge 4C 2015] 157b I210 Gigabit Network Connection + ea50 cc10 RXi2-BP 157c I210 Gigabit Backplane Connection 157d DSL5110 Thunderbolt 2 NHI (Low Power) [Win Ridge 2C 2014] 157e DSL5110 Thunderbolt 2 Bridge (Low Power) [Win Ridge 2C 2014] @@ -26233,6 +26827,7 @@ 1059 0170 RD-01213 10GbE interface 1590 0000 Ethernet 2-port 563i Adapter 1590 00f8 Ethernet 2-port 563i Adapter + 193d 100e NIC-ETH561i-Mb-4x10G 8086 0000 Ethernet Converged Network Adapter XL710-Q2 1583 Ethernet Controller XL710 for 40GbE QSFP+ 1028 0000 Ethernet 40G 2P XL710 QSFP+ rNDC @@ -26317,6 +26912,8 @@ 1591 Ethernet Controller E810-C for backplane 1592 Ethernet Controller E810-C for QSFP 1137 02bf E810CQDA2 2x100 GbE QSFP28 PCIe NIC + 193d 1050 NIC-ETH1060F-LP-2P 2x100GbE Ethernet PCIe Card + 8086 0001 Ethernet Network Adapter E810-C-Q1 8086 0002 Ethernet Network Adapter E810-C-Q2 8086 0004 Ethernet Network Adapter E810-C-Q2 8086 0005 Ethernet Network Adapter E810-C-Q1 for OCP3.0 @@ -26325,6 +26922,8 @@ 8086 000a Ethernet Network Adapter E810-C-Q1 for OCP 8086 000b Ethernet 100G 2P E810-C Adapter 8086 000c Ethernet 100G 2P E810-C OCP + 8086 000d Ethernet Network Adapter E810-L-Q2 for OCP 3.0 + 8086 000e Ethernet Network Adapter E810-2C-Q2 1593 Ethernet Controller E810-C for SFP 1137 02c3 E810XXVDA4 4x25/10 GbE SFP28 PCIe NIC 8086 0002 Ethernet Network Adapter E810-L-2 @@ -26369,6 +26968,7 @@ 15b6 DSL6540 USB 3.1 Controller [Alpine Ridge] 15b7 Ethernet Connection (2) I219-LM 15b8 Ethernet Connection (2) I219-V + 1462 7a72 H270 PC MATE 15b9 Ethernet Connection (3) I219-LM 15bb Ethernet Connection (7) I219-LM 15bc Ethernet Connection (7) I219-V @@ -26438,6 +27038,10 @@ 1137 0000 X710TLG GbE RJ45 PCIe NIC 1137 02c1 X710T2LG 2x10 GbE RJ45 PCIe NIC 1137 02c2 X710T4LG 4x10 GbE RJ45 PCIe NIC + 1137 02d9 Ethernet Network Adapter X710-T2L OCP 3.0 + 1137 02da Ethernet Network Adapter X710-T4L OCP 3.0 +# NIC-ETH565T-3S-2P OCP3.0 2x10G Base-T Card + 193d 1082 NIC-ETH565T-3S-2P 8086 0000 Ethernet Network Adapter X710-TL 8086 0001 Ethernet Network Adapter X710-T4L 8086 0002 Ethernet Network Adapter X710-T4L @@ -26503,18 +27107,20 @@ 18a0 C4xxx Series QAT 18a1 C4XXX Series QAT Virtual Function 1900 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers - 1901 6th-9th Gen Core Processor PCIe Controller (x16) + 1901 6th-10th Gen Core Processor PCIe Controller (x16) 1902 HD Graphics 510 1903 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem 1028 06d6 Latitude 7275 tablet 1028 06dc Latitude E7470 1028 06e4 XPS 15 9550 + 1028 06e6 Latitude 11 5175 2-in-1 103c 825b OMEN-17-w001nv 17aa 225d ThinkPad T480 1904 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers 1028 06dc Latitude E7470 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 + 17aa 2247 ThinkPad T570 17aa 382a B51-80 Laptop 1905 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x8) 1906 HD Graphics 510 @@ -26523,12 +27129,14 @@ 1909 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x4) 190c Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers 1028 06d6 Latitude 7275 tablet + 1028 06e6 Latitude 11 5175 2-in-1 190f Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers 1910 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers 1028 06e4 XPS 15 9550 103c 825b OMEN-17-w001nv 1911 Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model 1028 0869 Vostro 3470 + 1462 7a72 H270 PC MATE 17aa 2247 ThinkPad T570 17aa 224f ThinkPad X1 Carbon 5th Gen 17aa 225d ThinkPad T480 @@ -26537,15 +27145,18 @@ 1028 06dc Latitude E7470 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 + 17aa 2247 ThinkPad T570 1918 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers 1919 Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Imaging Unit 1028 06d6 Latitude 7275 tablet + 1028 06e6 Latitude 11 5175 2-in-1 191b HD Graphics 530 1028 06e4 XPS 15 9550 103c 825b OMEN-17-w001nv 191d HD Graphics P530 191e HD Graphics 515 1028 06d6 Latitude 7275 tablet + 1028 06e6 Latitude 11 5175 2-in-1 191f Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers 1921 HD Graphics 520 1926 Iris Graphics 540 @@ -26657,6 +27268,7 @@ 1c02 6 Series/C200 Series Chipset Family 6 port Desktop SATA AHCI Controller 1028 04aa XPS 8300 1043 844d P8 series motherboard + 8086 200d DH61CR motherboard 8086 7270 Server Board S1200BT Family 1c03 6 Series/C200 Series Chipset Family 6 port Mobile SATA AHCI Controller 1028 04a3 Precision M4600 @@ -26707,6 +27319,7 @@ 17aa 21cf ThinkPad T520 # Realtek ALC888 audio codec 8086 2008 DQ67SW board + 8086 200d DH61CR motherboard 8086 7270 Apple MacBookPro8,2 [Core i7, 15", 2011] 1c22 6 Series/C200 Series Chipset Family SMBus Controller 1028 04a3 Precision M4600 @@ -26715,6 +27328,7 @@ 1028 04da Vostro 3750 1043 844d P8 series motherboard 17aa 21cf ThinkPad T520 + 8086 200d DH61CR motherboard 8086 7270 Server Board S1200BT Family / 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 @@ -26725,6 +27339,7 @@ 1028 04da Vostro 3750 1043 844d P8 series motherboard 17aa 21cf ThinkPad T520 + 8086 200d DH61CR motherboard 8086 7270 Server Board S1200BT Family / 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] @@ -26737,6 +27352,7 @@ 1028 04da Vostro 3750 1043 844d P8 series motherboard 17aa 21cf ThinkPad T520 + 8086 200d DH61CR motherboard 8086 7270 Server Board S1200BT Family / 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 @@ -26747,6 +27363,7 @@ 1028 04da Vostro 3750 1043 844d P8 series motherboard 17aa 21cf ThinkPad T520 + 8086 200d DH61CR 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 @@ -26790,6 +27407,7 @@ 1c5a Upgraded Q67 Express Chipset LPC Controller 1c5b 6 Series/C200 Series Chipset Family LPC Controller 1c5c H61 Express Chipset LPC Controller + 8086 200d DH61CR motherboard 1c5d 6 Series/C200 Series Chipset Family LPC Controller 1c5e 6 Series/C200 Series Chipset Family LPC Controller 1c5f 6 Series/C200 Series Chipset Family LPC Controller @@ -26829,6 +27447,7 @@ 15d9 066b X9SRL-F 1d2d C600/X79 series chipset USB2 Enhanced Host Controller #2 1028 04f7 C602J on PowerEdge R320 server + 103c 18a9 HP DL360e G8 15d9 066b X9SRL-F 1d33 C600/X79 series chipset LAN Controller 1d35 C600/X79 series chipset VECI Controller @@ -27055,6 +27674,7 @@ 1f26 Atom processor C2000 RAID SATA2 Controller 1f27 Atom processor C2000 RAID SATA2 Controller 1f2c Atom processor C2000 USB Enhanced Host Controller + 0200 1028 Atom C2338 on Dell 0K8Y0N motherboard 1f2e Atom processor C2000 RAID SATA2 Controller 1f2f Atom processor C2000 RAID SATA2 Controller 1f30 Atom processor C2000 2-Port IDE SATA3 Controller @@ -27252,6 +27872,7 @@ 147b 0507 TH7II-RAID 8086 4532 Desktop Board D815EEA2/D815EFV 8086 4557 D815EGEW Mainboard + 8086 4d44 D850EMV2 motherboard 8086 5744 S845WD1-E mainboard 2443 82801BA/BAM SMBus Controller 1014 01c6 Netvista A40/A40p @@ -27293,6 +27914,7 @@ 147b 0507 TH7II-RAID 8086 4557 D815EGEW Mainboard 8086 4656 Desktop Board D815EFV + 8086 4d44 D850EMV2 motherboard 2446 82801BA/BAM AC'97 Modem Controller 1025 1016 Travelmate 612 TX 104d 80df Vaio PCG-FX403 @@ -27367,6 +27989,7 @@ 15d9 3280 Supermicro P4SBE Mainboard 8086 4532 Desktop Board D815EEA2/D815EFV 8086 4557 D815EGEW Mainboard + 8086 4d44 D850EMV2 motherboard 8086 5744 S845WD1-E mainboard 244c 82801BAM ISA Bridge (LPC) 244e 82801 PCI Bridge @@ -27869,6 +28492,7 @@ 1cb8 0002 Omni-Path HFI Adapter 100 Series, 1 Port, PCIe x16, TC6600 Fixed Port 1cb8 0003 Omni-Path HFI Adapter 100 Series, 2 Port, 2 PCIe x16, Earth Simulation QSFP28 1cb8 0004 Omni-Path HFI Adapter 100 Series, 1 Port, PCIe x16, TC4600E QSFP28 + 434e 0001 Omni-Path HFI 100 Series, 1 Port, OCP 3.0 Adapter 8086 2628 Omni-Path HFI Adapter 100 Series, 1 Port, PCIe x16 8086 2629 Omni-Path HFI Adapter 100 Series, 1 Port, PCIe x8 8086 262a Omni-Path HFI Adapter 100 Series, 2 Ports, Split PCIe x16 @@ -27897,6 +28521,9 @@ 250f 82820 820 (Camino) Chipset AGP Bridge 2520 82805AA MTH Memory Translator Hub 2521 82804AA MRH-S Memory Repeater Hub for SDRAM + 2522 NVMe Optane Memory Series + 8086 3806 Optane Memory 16GB + 8086 3810 Optane Memory M10 16GB 2526 Wireless-AC 9260 2530 82850 850 (Tehama) Chipset Host Bridge (MCH) 1028 00c7 Dimension 8100 @@ -27987,6 +28614,7 @@ 103c 0934 Compaq nw8240/nx8220 103c 0944 Compaq nc6220 Notebook PC 103c 099c NX6110/NC6120 + 1043 82d9 Asus Eee PC 900 104d 81b7 Vaio VGN-S3XP a304 81b7 Vaio VGN-S3XP e4bf 0ccd CCD-CALYPSO @@ -28402,7 +29030,22 @@ 8086 3904 NVMe Datacenter SSD [Optane] x4 AIC (P4800X) 8086 3905 NVMe Datacenter SSD [Optane] 15mm 2.5" U.2 (P4800X) 2723 Wi-Fi 6 AX200 - 8086 2723 Wireless AX200 + 1a56 1654 Killer™ Wi-Fi 6 AX1650x (AX200NGW) + 8086 0084 Wi-Fi 6 AX200NGW + 2725 Wi-Fi 6 AX210/AX211/AX411 160MHz + 8086 0020 Wi-Fi 6 AX210 160MHz + 8086 0024 Wi-Fi 6 AX210 160MHz + 8086 0090 Wi-Fi 6 AX211 160MHz + 8086 00b0 Wi-Fi 6 AX411 160MHz + 8086 0310 Wi-Fi 6 AX210 160MHz + 8086 0510 Wi-Fi 6 AX210 160MHz + 8086 0a10 Wi-Fi 6 AX210 160MHz + 8086 2020 Wi-Fi 6 AX210 160MHz + 8086 4020 Wi-Fi 6 AX210 160MHz + 8086 6020 Wi-Fi 6 AX210 160MHz + 8086 6024 Wi-Fi 6 AX210 160MHz + 8086 e020 Wi-Fi 6 AX210 160MHz + 8086 e024 Wi-Fi 6 AX210 160MHz 2770 82945G/GZ/P/PL Memory Controller Hub 1028 01ad OptiPlex GX620 103c 2a3b Pavilion A1512X @@ -28429,6 +29072,7 @@ 277c 82975X Memory Controller Hub 1043 8178 P5WDG2 WS Professional motherboard 277d 82975X PCI Express Root Port + 2780 82915G/GV/GL/910GL [Grantsdale] Graphics Device 2782 82915G Integrated Graphics Controller 1043 2582 P5GD1-VW Mainboard 1734 105b Scenic W620 @@ -29390,6 +30034,7 @@ 1028 022f Inspiron 1525 103c 30c0 Compaq 6710b 103c 30c1 Compaq 6910p + 103c 30c5 Compaq 8510p 103c 30cc Pavilion dv6700 103c 30d9 Presario C700 1043 1017 X58LE @@ -29445,6 +30090,7 @@ 2a41 Mobile 4 Series Chipset PCI Express Graphics Port e4bf cc4d CCM-BOOGIE 2a42 Mobile 4 Series Chipset Integrated Graphics Controller + 1028 02aa Dell Inspiron 1545 17aa 2112 ThinkPad T400 e4bf cc4d CCM-BOOGIE 2a43 Mobile 4 Series Chipset Integrated Graphics Controller @@ -29860,8 +30506,8 @@ 8086 4210 Dual Band Wireless AC 3165 3166 Dual Band Wireless-AC 3165 Plus Bluetooth 8086 4210 Dual Band Wireless-AC 3165 - 3184 UHD Graphics 605 - 3185 UHD Graphics 605 + 3184 GeminiLake [UHD Graphics 605] + 3185 GeminiLake [UHD Graphics 600] 318c Celeron/Pentium Silver Processor Dynamic Platform and Thermal Framework Processor Participant 318e Celeron/Pentium Silver Processor NorthPeak 3190 Celeron/Pentium Silver Processor Gaussian Mixture Model @@ -29871,6 +30517,8 @@ 17aa 380b V130-15IGM Laptop (Lenovo) - Type 81HL 319a Celeron/Pentium Silver Processor Trusted Execution Engine Interface 31a2 Celeron/Pentium Silver Processor Integrated Sensor Solution + 31a8 Celeron/Pentium Silver Processor USB 3.0 xHCI Controller + 1849 31a8 Celeron/Pentium Silver Processor USB 3.0 xHCI Controller 31ac Celeron/Pentium Silver Processor Serial IO I2C Host Controller 31ae Celeron/Pentium Silver Processor Serial IO I2C Host Controller 31bc Celeron/Pentium Silver Processor Serial IO UART Host Controller @@ -29887,7 +30535,11 @@ 31d9 Gemini Lake PCI Express Root Port 31da Gemini Lake PCI Express Root Port 31db Gemini Lake PCI Express Root Port - 31dc AC 1550i Wireless + 31dc Gemini Lake PCH CNVi WiFi + 1a56 1552 Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) + 8086 0034 Wireless-AC 9560 + 31e3 Celeron/Pentium Silver Processor SATA Controller + 31e8 Celeron/Pentium Silver Processor LPC Controller 31ee Celeron/Pentium Silver Processor Serial IO UART Host Controller 31f0 Gemini Lake Host Bridge 3200 GD31244 PCI-X SATA HBA @@ -29973,19 +30625,25 @@ 34aa Ice Lake-LP Serial IO SPI Controller #0 34ab Ice Lake-LP Serial IO SPI Controller #1 34b0 Ice Lake-LP PCI Express Root Port #9 + 34b7 Ice Lake-LP PCI Express Root Port #16 34bc Ice Lake-LP PCI Express Root Port #5 34c5 Ice Lake-LP Serial IO I2c Controller #4 34c6 Ice Lake-LP Serial IO I2c Controller #5 - 34c8 Smart Sound Technology Audio Controller + 34c8 Ice Lake-LP Smart Sound Technology Audio Controller 34d3 Ice Lake-LP SATA Controller [AHCI mode] - 34e0 Management Engine Interface + 34e0 Ice Lake-LP Management Engine 34e8 Ice Lake-LP Serial IO I2C Controller #0 34e9 Ice Lake-LP Serial IO I2C Controller #1 34ea Ice Lake-LP Serial IO I2C Controller #2 34eb Ice Lake-LP Serial IO I2C Controller #3 34ed Ice Lake-LP USB 3.1 xHCI Host Controller - 34f0 Killer Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW) + 34ef Ice Lake-LP DRAM Controller + 34f0 Ice Lake-LP PCH CNVi WiFi + 1a56 1552 Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) + 8086 0074 Wi-Fi 6 AX201 + 8086 0264 Wireless-AC 9461 34f8 Ice Lake-LP SD Controller + 34fc Ice Lake-LP Integrated Sensor Solution 3500 6311ESB/6321ESB PCI Express Upstream Port 103c 31fe ProLiant DL140 G3 15d9 9680 X7DBN Motherboard @@ -30599,16 +31257,17 @@ 3e81 8th Gen Core Processor PCIe Controller (x16) 3e85 8th Gen Core Processor PCIe Controller (x8) 3e89 8th Gen Core Processor PCIe Controller (x4) - 3e91 8th Gen Core Processor Gaussian Mixture Model - 3e92 UHD Graphics 630 (Desktop) + 3e90 CoffeeLake-S GT1 [UHD Graphics 610] + 3e91 CoffeeLake-S GT2 [UHD Graphics 630] + 3e92 CometLake-S GT2 [UHD Graphics 630] 1028 0869 Vostro 3470 - 3e93 UHD Graphics 610 - 3e96 HD Graphics P630 - 3e98 UHD Graphics 630 (Desktop 9 Series) - 3e9b UHD Graphics 630 (Mobile) - 3ea0 UHD Graphics 620 (Whiskey Lake) + 3e93 CoffeeLake-S GT1 [UHD Graphics 610] + 3e96 CoffeeLake-S GT2 [UHD Graphics P630] + 3e98 CoffeeLake-S GT2 [UHD Graphics 630] + 3e9b CoffeeLake-H GT2 [UHD Graphics 630] + 3ea0 WhiskeyLake-U GT2 [UHD Graphics 620] 1028 089e Inspiron 5482 - 3ea5 Iris Plus Graphics 655 + 3ea5 CoffeeLake-U GT3e [Iris Plus Graphics 655] 3ec2 8th Gen Core Processor Host Bridge/DRAM Registers 1028 0869 Vostro 3470 1043 8694 PRIME H310M-D @@ -30636,6 +31295,7 @@ 4032 5400 Chipset IOxAPIC 4035 5400 Chipset FBD Registers 4036 5400 Chipset FBD Registers + 4041 NVMe Datacenter SSD [Optane] 4100 Moorestown Graphics and Video 4108 Atom Processor E6xx Integrated Graphics Controller 4109 Atom Processor E6xx Integrated Graphics Controller @@ -30649,6 +31309,13 @@ 4115 Atom Processor E6xx PCI Host Bridge #2 4116 Atom Processor E6xx PCI Host Bridge #3 4117 Atom Processor E6xx PCI Host Bridge #4 + 4140 NVMe Datacenter SSD [Optane] + 1028 2134 NVMe Datacenter SSD [Optane] SED 400GB 2.5" U.2 (P5800X) + 1028 2135 NVMe Datacenter SSD [Optane] SED 800GB 2.5" U.2 (P5800X) + 1028 2136 NVMe Datacenter SSD [Optane] SED 1.6TB 2.5" U.2 (P5800X) + 1028 2137 NVMe Datacenter SSD [Optane] 400GB 2.5" U.2 (P5800X) + 1028 2138 NVMe Datacenter SSD [Optane] 800GB 2.5" U.2 (P5800X) + 1028 2139 NVMe Datacenter SSD [Optane] 1.6TB 2.5" U.2 (P5800X) 4220 PRO/Wireless 2200BG [Calexico2] Network Connection 103c 0934 Compaq nw8240/nx8220 103c 12f6 nc6120/nc6220/nw8240/nx8220 @@ -30738,9 +31405,49 @@ 8086 1216 WiMAX/WiFi Link 5150 ABG 8086 1311 WiMAX/WiFi Link 5150 AGN 8086 1316 WiMAX/WiFi Link 5150 ABG + 438b Tiger Lake-H LPC/eSPI Controller + 43a3 Tiger Lake-H SMBus Controller + 43a4 Tiger Lake-H SPI Controller + 43b0 Tiger Lake-H PCI Express Root Port #9 + 43bc Tiger Lake-H PCI Express Root Port #5 + 43c8 Tiger Lake-H HD Audio Controller + 43e0 Tiger Lake-H Management Engine Interface + 43e8 Tiger Lake-H Serial IO I2C Controller #0 + 43ed Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller + 43ef Tiger Lake-H Shared SRAM + 43f0 Tiger Lake PCH CNVi WiFi + 8086 0034 Wireless-AC 9560 + 8086 0074 Wi-Fi 6 AX201 160MHz + 8086 0264 Wireless-AC 9461 + 8086 02a4 Wireless-AC 9462 444e Turbo Memory Controller 467f Volume Management Device NVMe RAID Controller + 4680 AlderLake-S GT1 + 46a0 AlderLake-P GT2 + 46c0 AlderLake-M GT1 + 4905 DG1 [Iris Xe MAX Graphics] + 4906 DG1 [Iris Xe Pod] + 4907 SG1 [Server GPU SG-18M] + 4908 DG1 [Iris Xe Graphics] 4c3d Volume Management Device NVMe RAID Controller + 4c8a RocketLake-S GT1 [UHD Graphics 750] + 4c8b RocketLake-S GT1 [UHD Graphics 730] + 4c90 RocketLake-S GT1 [UHD Graphics P750] + 4c9a RocketLake-S [UHD Graphics] + 4da3 JaserLake SMBus + 4da4 JaserLake SPI (flash) Controller + 4de0 Management Engine Interface + 4de8 Serial IO I2C Host Controller + 4de9 Serial IO I2C Host Controller + 4df0 Wi-Fi 6 AX201 160MHz + 4e03 Dynamic Tuning service + 4e19 JasperLake IPU + 4e55 JasperLake [UHD Graphics] + 4e61 JasperLake [UHD Graphics] + 4e71 JasperLake [UHD Graphics] + 4f80 DG2 + 4f81 DG2 + 4f82 DG2 5001 LE80578 5002 LE80578 Graphics Processor Unit 5009 LE80578 Video Display Controller @@ -30793,6 +31500,7 @@ 8086 0001 EtherExpress PRO/100 Server Ethernet Adapter 530d 80310 (IOP) IO Processor 5502 Ethernet Controller (2) I225-LMvP + 5504 Ethernet Controller I226-K 5845 QEMU NVM Express Controller 1af4 1100 QEMU Virtual Machine 5900 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers @@ -30807,9 +31515,11 @@ 590c Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers 590f Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers 1462 7a68 B250 KRAIT GAMING (MS-7A68) + 1462 7a72 H270 PC MATE 5910 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers 5911 Xeon E3-1200 v6/7th Gen Core Processor Gaussian Mixture Model 5912 HD Graphics 630 + 1462 7a72 H270 PC MATE 5914 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers 17aa 225d ThinkPad T480 5916 HD Graphics 620 @@ -31190,6 +31900,7 @@ 1993 0ded mGuard-PCI AV#2 1993 0dee mGuard-PCI AV#1 1993 0def mGuard-PCI AV#0 + 8603 Ice Lake-LP Dynamic Tuning Processor Participant 87c0 UHD Graphics 617 8800 Platform Controller Hub EG20T PCI Express Port 8801 Platform Controller Hub EG20T Packet Hub @@ -31218,8 +31929,10 @@ 8818 Platform Controller Hub EG20T Controller Area Network (CAN) Controller 8819 Platform Controller Hub EG20T IEEE 1588 Hardware Assist 8a0d Ice Lake Thunderbolt 3 NHI #1 + 8a12 Ice Lake-LP Processor Host Bridge/DRAM Registers 8a13 Ice Lake Thunderbolt 3 USB Controller 8a17 Ice Lake Thunderbolt 3 NHI #0 + 8a19 Image Signal Processor 8a1d Ice Lake Thunderbolt 3 PCI Express Root Port #0 8a1f Ice Lake Thunderbolt 3 PCI Express Root Port #1 8a21 Ice Lake Thunderbolt 3 PCI Express Root Port #2 @@ -31232,7 +31945,9 @@ 8c00 8 Series/C220 Series Chipset Family 4-port SATA Controller 1 [IDE mode] 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] + 1028 05d7 Alienware X51 R2 103c 1998 EliteDesk 800 G1 + 17aa 3098 ThinkCentre E73 17aa 309f ThinkCentre M83 8c03 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] 103c 1909 ZBook 15 @@ -31249,6 +31964,7 @@ 103c 1998 EliteDesk 800 G1 1043 8534 ASUS H81I-PLUS 17aa 220e ThinkPad T440p + 17aa 3098 ThinkCentre E73 8c11 8 Series/C220 Series Chipset Family PCI Express Root Port #1 8c12 8 Series/C220 Series Chipset Family PCI Express Root Port #2 103c 1998 EliteDesk 800 G1 @@ -31261,47 +31977,59 @@ 8c18 8 Series/C220 Series Chipset Family PCI Express Root Port #5 8c19 8 Series/C220 Series Chipset Family PCI Express Root Port #5 8c1a 8 Series/C220 Series Chipset Family PCI Express Root Port #6 + 17aa 3098 ThinkCentre E73 8c1b 8 Series/C220 Series Chipset Family PCI Express Root Port #6 8c1c 8 Series/C220 Series Chipset Family PCI Express Root Port #7 8c1d 8 Series/C220 Series Chipset Family PCI Express Root Port #7 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 + 1028 05d7 Alienware X51 R2 103c 1909 ZBook 15 103c 1998 EliteDesk 800 G1 17aa 220e ThinkPad T440p 17aa 309f ThinkCentre M83 8c21 8 Series/C220 Series Chipset High Definition Audio Controller 8c22 8 Series/C220 Series Chipset Family SMBus Controller + 1028 05d7 Alienware X51 R2 103c 1909 ZBook 15 103c 1998 EliteDesk 800 G1 17aa 220e ThinkPad T440p + 17aa 3098 ThinkCentre E73 17aa 309f ThinkCentre M83 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 + 1028 05d7 Alienware X51 R2 103c 1909 ZBook 15 103c 1998 EliteDesk 800 G1 17aa 220e ThinkPad T440p 17aa 2210 ThinkPad T540p + 17aa 3098 ThinkCentre E73 17aa 309f ThinkCentre M83 2210 17aa ThinkPad T540p 8c2d 8 Series/C220 Series Chipset Family USB EHCI #2 + 1028 05d7 Alienware X51 R2 103c 1909 ZBook 15 103c 1998 EliteDesk 800 G1 17aa 220e ThinkPad T440p + 17aa 3098 ThinkCentre E73 17aa 309f ThinkCentre M83 8c31 8 Series/C220 Series Chipset Family USB xHCI + 1028 05d7 Alienware X51 R2 103c 1909 ZBook 15 103c 1998 EliteDesk 800 G1 17aa 220e ThinkPad T440p + 17aa 3098 ThinkCentre E73 17aa 309f ThinkCentre M83 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 + 1028 05d7 Alienware X51 R2 103c 1909 ZBook 15 103c 1998 EliteDesk 800 G1 17aa 220e ThinkPad T440p + 17aa 3098 ThinkCentre E73 17aa 309f ThinkCentre M83 8c3b 8 Series/C220 Series Chipset Family MEI Controller #2 8c3c 8 Series/C220 Series Chipset Family IDE-r Controller @@ -31318,6 +32046,7 @@ 8c48 8 Series/C220 Series Chipset Family LPC Controller 8c49 HM86 Express LPC Controller 8c4a H87 Express LPC Controller + 1028 05d7 Alienware X51 R2 8c4b HM87 Express LPC Controller 8c4c Q85 Express LPC Controller 17aa 309f ThinkCentre M83 @@ -31340,6 +32069,7 @@ 8c5a 8 Series/C220 Series Chipset Family LPC Controller 8c5b 8 Series/C220 Series Chipset Family LPC Controller 8c5c H81 Express LPC Controller + 17aa 3098 ThinkCentre E73 8c5d 8 Series/C220 Series Chipset Family LPC Controller 8c5e 8 Series/C220 Series Chipset Family LPC Controller 8c5f 8 Series/C220 Series Chipset Family LPC Controller @@ -31458,25 +32188,46 @@ 9622 Integrated RAID 9641 Integrated RAID 96a1 Integrated RAID + 9a01 11th Gen Core Processor PCIe Controller #1 + 9a03 TigerLake-LP Dynamic Tuning Processor Participant 9a09 11th Gen Core Processor PCIe Controller 9a0b Volume Management Device NVMe RAID Controller - 9a13 Tiger Lake-LP Thunderbolt USB Controller + 9a0d Tigerlake Telemetry Aggregator Driver + 9a0f 11th Gen Core Processor PCIe Controller #0 + 9a11 GNA Scoring Accelerator module + 9a13 Tiger Lake-LP Thunderbolt 4 USB Controller 9a14 11th Gen Core Processor Host Bridge/DRAM Registers - 9a1b Tiger Lake-LP Thunderbolt NHI #0 - 9a1d Tiger Lake-LP Thunderbolt NHI #1 - 9a23 Tiger Lake-LP Thunderbolt PCI Express Root Port #0 - 9a25 Tiger Lake-LP Thunderbolt PCI Express Root Port #1 - 9a27 Tiger Lake-LP Thunderbolt PCI Express Root Port #2 - 9a29 Tiger Lake-LP Thunderbolt PCI Express Root Port #3 + 9a17 Tiger Lake-H Thunderbolt 4 USB Controller + 9a1b Tiger Lake-LP Thunderbolt 4 NHI #0 + 9a1d Tiger Lake-LP Thunderbolt 4 NHI #1 + 9a1f Tiger Lake-H Thunderbolt 4 NHI #0 + 9a21 Tiger Lake-H Thunderbolt 4 NHI #1 + 9a23 Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #0 + 9a25 Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #1 + 9a26 11th Gen Core Processor Host Bridge/DRAM Registers + 9a27 Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #2 + 9a29 Tiger Lake-LP Thunderbolt 4 PCI Express Root Port #3 + 9a2b Tiger Lake-H Thunderbolt 4 PCI Express Root Port #0 + 9a2d Tiger Lake-H Thunderbolt 4 PCI Express Root Port #1 + 9a2f Tiger Lake-H Thunderbolt 4 PCI Express Root Port #2 + 9a31 Tiger Lake-H Thunderbolt 4 PCI Express Root Port #3 9a33 Tiger Lake Trace Hub - 9a49 UHD Graphics - 9b41 UHD Graphics + 9a36 11th Gen Core Processor Host Bridge/DRAM Registers + 9a49 TigerLake-LP GT2 [Iris Xe Graphics] + 9a60 TigerLake-H GT1 [UHD Graphics] + 9a68 TigerLake-H GT1 [UHD Graphics] + 9b41 CometLake-U GT2 [UHD Graphics] + 1028 09bd Latitude 7310 9b44 10th Gen Core Processor Host Bridge/DRAM Registers + 9b53 Comet Lake-S 6c Host Bridge/DRAM Controller 9b54 10th Gen Core Processor Host Bridge/DRAM Registers 9b61 Comet Lake-U v1 4c Host Bridge/DRAM Controller + 9b63 10th Gen Core Processor Host Bridge/DRAM Registers 9b64 10th Gen Core Processor Host Bridge/DRAM Registers - 9bc4 UHD Graphics - 9bc8 UHD Graphics 630 + 9bc4 CometLake-H GT2 [UHD Graphics] + 9bc5 CometLake-S GT2 [UHD Graphics 630] + 9bc8 CometLake-S GT2 [UHD Graphics 630] + 9bca Comet Lake UHD Graphics 9c00 8 Series SATA Controller 1 [IDE mode] 9c01 8 Series SATA Controller 1 [IDE mode] 9c02 8 Series SATA Controller 1 [AHCI mode] @@ -31585,6 +32336,7 @@ 9d03 Sunrise Point-LP SATA Controller [AHCI mode] 1025 115f Acer Aspire E5-575G 1028 06dc Latitude E7470 + 1028 06e6 Latitude 11 5175 2-in-1 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 17aa 225d ThinkPad T480 @@ -31600,6 +32352,7 @@ 9d16 Sunrise Point-LP PCI Express Root Port #7 9d17 Sunrise Point-LP PCI Express Root Port #8 9d18 Sunrise Point-LP PCI Express Root Port #9 + 17aa 2247 ThinkPad T570 17aa 382a B51-80 Laptop 9d19 Sunrise Point-LP PCI Express Root Port #10 9d1a Sunrise Point-LP PCI Express Root Port #11 @@ -31607,8 +32360,10 @@ 1025 115f Acer Aspire E5-575G 1028 06d6 Latitude 7275 tablet 1028 06dc Latitude E7470 + 1028 06e6 Latitude 11 5175 2-in-1 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 + 17aa 2247 ThinkPad T570 17aa 224f ThinkPad X1 Carbon 5th Gen 17aa 225d ThinkPad T480 17aa 382a B51-80 Laptop @@ -31616,6 +32371,7 @@ 1025 115f Acer Aspire E5-575G 1028 06d6 Latitude 7275 tablet 1028 06dc Latitude E7470 + 1028 06e6 Latitude 11 5175 2-in-1 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 17aa 2247 ThinkPad T570 @@ -31631,6 +32387,7 @@ 1025 115f Acer Aspire E5-575G 1028 06d6 Latitude 7275 tablet 1028 06dc Latitude E7470 + 1028 06e6 Latitude 11 5175 2-in-1 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 17aa 2247 ThinkPad T570 @@ -31640,6 +32397,7 @@ 1025 115f Acer Aspire E5-575G 1028 06d6 Latitude 7275 tablet 1028 06dc Latitude E7470 + 1028 06e6 Latitude 11 5175 2-in-1 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 17aa 2247 ThinkPad T570 @@ -31648,12 +32406,15 @@ 17aa 382a B51-80 Laptop 9d32 CSI-2 Host Controller 1028 06d6 Latitude 7275 tablet + 1028 06e6 Latitude 11 5175 2-in-1 9d35 Sunrise Point-LP Integrated Sensor Hub 1028 06d6 Latitude 7275 tablet + 1028 06e6 Latitude 11 5175 2-in-1 9d3a Sunrise Point-LP CSME HECI #1 1025 115f Acer Aspire E5-575G 1028 06d6 Latitude 7275 tablet 1028 06dc Latitude E7470 + 1028 06e6 Latitude 11 5175 2-in-1 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 17aa 2247 ThinkPad T570 @@ -31662,14 +32423,17 @@ 17aa 382a B51-80 Laptop 9d3d Sunrise Point-LP Active Management Technology - SOL 103c 8079 EliteBook 840 G3 + 17aa 2247 ThinkPad T570 9d43 Sunrise Point-LP LPC Controller 17aa 382a B51-80 Laptop 9d46 LPC/eSPI Controller 1028 06d6 Latitude 7275 tablet + 1028 06e6 Latitude 11 5175 2-in-1 9d48 Sunrise Point-LP LPC Controller 1028 06dc Latitude E7470 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 + 17aa 2247 ThinkPad T570 9d4e Sunrise Point LPC Controller/eSPI Controller 17aa 225d ThinkPad T480 9d50 Sunrise Point LPC Controller @@ -31681,14 +32445,17 @@ 9d60 Sunrise Point-LP Serial IO I2C Controller #0 1025 115f Acer Aspire E5-575G 1028 06d6 Latitude 7275 tablet + 1028 06e6 Latitude 11 5175 2-in-1 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 17aa 225d ThinkPad T480 8086 9d60 100 Series PCH/Sunrise Point PCH I2C0 [Skylake/Kaby Lake LPSS I2C] 9d61 Sunrise Point-LP Serial IO I2C Controller #1 1028 06d6 Latitude 7275 tablet + 1028 06e6 Latitude 11 5175 2-in-1 9d62 Sunrise Point-LP Serial IO I2C Controller #2 1028 06d6 Latitude 7275 tablet + 1028 06e6 Latitude 11 5175 2-in-1 9d63 Sunrise Point-LP Serial IO I2C Controller #3 9d64 Sunrise Point-LP Serial IO I2C Controller #4 9d65 Sunrise Point-LP Serial IO I2C Controller #5 @@ -31696,8 +32463,10 @@ 9d70 Sunrise Point-LP HD Audio 1028 06d6 Latitude 7275 tablet 1028 06dc Latitude E7470 + 1028 06e6 Latitude 11 5175 2-in-1 1028 06f3 Latitude 3570 103c 8079 EliteBook 840 G3 + 17aa 2247 ThinkPad T570 17aa 382a B51-80 Laptop 9d71 Sunrise Point-LP HD Audio 1025 1094 Acer Aspire E5-575G @@ -31763,6 +32532,7 @@ a0a9 Tiger Lake-LP Serial IO UART Controller #1 a0ab Tiger Lake-LP Serial IO SPI Controller #1 a0b0 Tiger Lake-LP PCI Express Root Port #9 + a0bd Tigerlake PCH-LP PCI Express Root Port #6 a0bf Tiger Lake-LP PCI Express Root Port #8 a0c5 Tiger Lake-LP Serial IO I2C Controller #4 a0c6 Tiger Lake-LP Serial IO I2C Controller #5 @@ -31950,16 +32720,20 @@ a252 Lewisburg SSATA Controller [AHCI mode] a256 Lewisburg SSATA Controller [RAID mode] a282 200 Series PCH SATA controller [AHCI mode] + 1462 7a72 H270 PC MATE a286 200 Series PCH SATA controller [RAID mode] a290 200 Series PCH PCI Express Root Port #1 a291 200 Series PCH PCI Express Root Port #2 a292 200 Series PCH PCI Express Root Port #3 a293 200 Series PCH PCI Express Root Port #4 a294 200 Series PCH PCI Express Root Port #5 + 1462 7a72 H270 PC MATE a295 200 Series PCH PCI Express Root Port #6 a296 200 Series PCH PCI Express Root Port #7 + 1462 7a72 H270 PC MATE a297 200 Series PCH PCI Express Root Port #8 a298 200 Series PCH PCI Express Root Port #9 + 1462 7a72 H270 PC MATE a299 200 Series PCH PCI Express Root Port #10 a29a 200 Series PCH PCI Express Root Port #11 a29b 200 Series PCH PCI Express Root Port #12 @@ -31969,7 +32743,9 @@ a29f 200 Series PCH PCI Express Root Port #16 a2a0 200 Series/Z370 Chipset Family P2SB a2a1 200 Series/Z370 Chipset Family Power Management Controller + 1462 7a72 H270 PC MATE a2a3 200 Series/Z370 Chipset Family SMBus Controller + 1462 7a72 H270 PC MATE a2a4 200 Series/Z370 Chipset Family SPI Controller a2a5 200 Series/Z370 Chipset Family Gigabit Ethernet Controller a2a6 200 Series/Z370 Chipset Family Trace Hub @@ -31978,10 +32754,14 @@ a2a9 200 Series/Z370 Chipset Family Serial IO SPI Controller #0 a2aa 200 Series/Z370 Chipset Family Serial IO SPI Controller #1 a2af 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller + 1462 7a72 H270 PC MATE a2b1 200 Series PCH Thermal Subsystem + 1462 7a72 H270 PC MATE a2ba 200 Series PCH CSME HECI #1 + 1462 7a72 H270 PC MATE a2bb 200 Series PCH CSME HECI #2 a2c4 200 Series PCH LPC Controller (H270) + 1462 7a72 H270 PC MATE a2c5 200 Series PCH LPC Controller (Z270) a2c6 200 Series PCH LPC Controller (Q270) a2c7 200 Series PCH LPC Controller (Q250) @@ -32003,6 +32783,8 @@ a2ed 200 Series PCH PCI Express Root Port #23 a2ee 200 Series PCH PCI Express Root Port #24 a2f0 200 Series PCH HD Audio + 1462 7a72 H270 PC MATE + 1462 fa72 H270 PC MATE a304 H370 Chipset LPC/eSPI Controller 1028 0869 Vostro 3470 a305 Z390 Chipset LPC/eSPI Controller @@ -32016,6 +32798,7 @@ a324 Cannon Lake PCH SPI Controller 1028 0869 Vostro 3470 a328 Cannon Lake PCH Serial IO UART Host Controller + a32b Cannon Lake PCH SPI Host Controller a32c Cannon Lake PCH PCI Express Root Port #21 a32d Cannon Lake PCH PCI Express Root Port #22 a32e Cannon Lake PCH PCI Express Root Port #23 @@ -32056,12 +32839,15 @@ a36d Cannon Lake PCH USB 3.1 xHCI Host Controller 1028 0869 Vostro 3470 a36f Cannon Lake PCH Shared SRAM - a370 Wireless-AC 9560 [Jefferson Peak] + a370 Cannon Lake PCH CNVi WiFi 1a56 1552 Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW) + 8086 0034 Wireless-AC 9560 a379 Cannon Lake PCH Thermal Controller 1028 0869 Vostro 3470 a382 400 Series Chipset Family SATA AHCI Controller + a3a1 Memory controller a3a3 Comet Lake PCH-V SMBus Host Controller + a3af Comet Lake PCH-V USB Controller a3b1 Comet Lake PCH-V Thermal Subsystem a620 6400/6402 Advanced Memory Buffer (AMB) abc0 Omni-Path Fabric Switch Silicon 100 Series @@ -32102,29 +32888,60 @@ d157 Core Processor System Control and Status Registers d158 Core Processor Miscellaneous Registers f1a5 SSD 600P Series +# M.2 22 x 80mm, NVMe + 8086 390a SSDPEKKW256G7 256GB f1a6 SSD Pro 7600p/760p/E 6100p Series 8086 390b SSD Pro 7600p/760p/E 6100p Series [NVM Express] f1a8 SSD 660P Series 8088 Beijing Wangxun Technology Co., Ltd. 0101 WX1860A2 Gigabit Ethernet Controller 8088 0201 Dual-Port Ethernet Network Adaptor SF200T + 8088 4201 Dual-Port Ethernet Network Adaptor SF200T (WOL) + 8088 8201 Dual-Port Ethernet Network Adaptor SF200T (NCSI) + 8088 c201 Dual-Port Ethernet Network Adaptor SF200T (WOL, NCSI) 0102 WX1860A2S Gigabit Ethernet Controller 8088 0210 Dual-Port Ethernet Network Adaptor SF200T-S 0103 WX1860A4 Gigabit Ethernet Controller 8088 0401 Qual-Port Ethernet Network Adaptor SF400T 8088 0440 Qual-Port Ethernet Network Adaptor SF400-OCP + 8088 4103 Quad-Port Ethernet Network Adaptor SF400T (WOL) + 8088 8103 Quad-Port Ethernet Network Adaptor SF400T (NCSI) + 8088 c103 Quad-Port Ethernet Network Adaptor SF400T (WOL, NCSI) 0104 WX1860A4S Gigabit Ethernet Controller 8088 0410 Qual-Port Ethernet Network Adaptor SF400T-S 0105 WX1860AL2 Gigabit Ethernet Controller 8088 0202 Dual-Port Ethernet Network Adaptor SF200HT + 8088 4202 Dual-Port Ethernet Network Adaptor SF200HT (WOL) + 8088 8202 Dual-Port Ethernet Network Adaptor SF200HT (NCSI) + 8088 c202 Dual-Port Ethernet Network Adaptor SF200HT (WOL, NCSI) 0106 WX1860AL2S Gigabit Ethernet Controller 8088 0220 Dual-Port Ethernet Network Adaptor SF200HT-S 0107 WX1860AL4 Gigabit Ethernet Controller 8088 0402 Qual-Port Ethernet Network Adaptor SF400HT + 8088 4402 Quad-Port Ethernet Network Adaptor SF400HT (WOL) + 8088 8402 Quad-Port Ethernet Network Adaptor SF400HT (NCSI) + 8088 c402 Quad-Port Ethernet Network Adaptor SF400HT (WOL, NCSI) 0108 WX1860AL4S Gigabit Ethernet Controller 8088 0420 Qual-Port Ethernet Network Adaptor SF400HT-S + 0109 WX1860-LC Gigabit Ethernet Controller + 010a WX1860A1 Gigabit Ethernet Controller +# add new device ID + 010b WX1860AL1 Gigabit Ethernet Controller + 8088 0102 Single-Port Ethernet Network Adaptor SF100HT + 8088 4102 Single-Port Ethernet Network Adaptor SF100HT (WOL) + 8088 8102 Single-Port Ethernet Network Adaptor SF100HT (NCSI) + 8088 c102 Single-Port Ethernet Network Adaptor SF100HT (WOL, NCSI) + 0111 WX1860A2 Ethernet Controller Virtual Function + 0113 WX1860A4 Ethernet Controller Virtual Function + 0115 WX1860AL2 Ethernet Controller Virtual Function + 0117 WX1860AL4 Ethernet Controller Virtual Function + 0119 WX1860-LC Gigabit Ethernet Controller Virtual Function + 011a WX1860A1 Gigabit Ethernet Controller Virtual Function + 011b WX1860AL1 Gigabit Ethernet Controller Virtual Function + 1000 Ethernet Controller RP1000 Virtual Function for 10GbE SFP+ 1001 Ethernet Controller RP1000 for 10GbE SFP+ 8088 0000 Ethernet Network Adaptor RP1000 for 10GbE SFP+ + 2000 Ethernet Controller RP2000 Virtual Function for 10GbE SFP+ 2001 Ethernet Controller RP2000 for 10GbE SFP+ 8088 2000 Ethernet Network Adaptor RP2000 for 10GbE SFP+ 80ee InnoTek Systemberatung GmbH @@ -32138,6 +32955,8 @@ 1011 vSMP Foundation MEX/FLX controller [vSMP CTL] 8800 Trigem Computer Inc. 2008 Video assistant component +8820 Stryker Corporation + 2724 Mako Front Side Motor Controller [cPCI] 8866 T-Square Design Inc. 8888 Silicon Magic 8912 TRX @@ -32647,6 +33466,7 @@ 0001 SG2010 PCI over Starfabric Bridge 0002 SG2010 PCI to Starfabric Gateway 0003 SG1010 Starfabric Switch and PCI Bridge +9a11 Tiger Lake-H Gaussian & Neural Accelerator 9d32 Beijing Starblaze Technology Co. Ltd. 0000 STAR1000 PCIe NVMe SSD Controller 1001 STAR1000P PCIe NVMe SSD Controller @@ -32743,6 +33563,7 @@ bdbd Blackmagic Design c001 TSI Telsys c0a9 Micron/Crucial Technology 2263 P1 NVMe PCIe SSD + 540a P2 NVMe PCIe SSD c0de Motorola c0fe Motion Engineering, Inc. ca3b Cambrionix Ltd. @@ -32866,7 +33687,7 @@ deda XIMEA 4021 MT camera e000 Winbond e000 W89C940 -e159 Tiger Jet Network Inc. +e159 Tiger Jet Network Inc. / ICP DAS 0001 Tiger3XX Modem/ISDN interface 0059 0001 128k ISDN-S/T Adapter 0059 0003 128k ISDN-U Adapter @@ -32897,6 +33718,7 @@ ea01 Eagle Technology 0046 PCI-766 Analog Output Card 0052 PCI-703 Analog I/O Card 0800 PCI-800 Digital I/O Card +ea50 Emerson Automation Solutions # The main chip of all these devices is by Xilinx -> It could also be a Xilinx ID. ea60 RME 9896 Digi32 @@ -33010,6 +33832,7 @@ f1d0 AJA Video eb23 Kona 1 eb24 Kona HDMI eb25 Corvid 44 12g + eb26 T-Tap Pro efac Xena SD-MM/SD-22-MM facd Xena HD-MM f5f5 F5 Networks, Inc. @@ -33166,6 +33989,9 @@ C 08 Generic system peripheral 05 SD Host controller 06 IOMMU 80 System peripheral + 99 Timing Card +# PTP Grandmaster Source Clock + 01 TAP Timing Card C 09 Input device controller 00 Keyboard controller 01 Digitizer Pen diff --git a/src/hwdata/usb.ids b/src/hwdata/usb.ids index 02e2ef420..a578a525e 100644 --- a/src/hwdata/usb.ids +++ b/src/hwdata/usb.ids @@ -9,8 +9,8 @@ # The latest version can be obtained from # http://www.linux-usb.org/usb.ids # -# Version: 2020.08.26 -# Date: 2020-08-26 20:34:09 +# Version: 2021.06.06 +# Date: 2021-06-06 20:34:10 #
# Vendors, devices and interfaces. Please keep sorted. @@ -593,6 +593,7 @@ 6217 Color LaserJet 4700 6302 PhotoSmart 318/612 6317 Color LaserJet 4730mfp + 632a LaserJet M203-M206 6402 PhotoSmart 715 (ptp) 6411 PhotoSmart C8100 series 6417 LaserJet 5200 @@ -781,6 +782,7 @@ 5642 Storage Device 5661 M5661 MP3 player 5667 M5667 MP3 player + 8841 Newmine Camera 9665 Gateway Webcam 0403 Future Technology Devices International, Ltd 0000 H4SMK 7 Port Hub / Bricked Counterfeit FT232 Serial (UART) IC @@ -798,6 +800,7 @@ 6014 FT232H Single HS USB-UART/FIFO IC 6015 Bridge(I2C/SPI/UART/FIFO) 601f Myriad-RF LimeSDR-Mini + 6ee0 EZO Carrier Board 6f70 HB-RF-USB 8028 Dev board JTAG (FT232H based) 8040 4 Port Hub @@ -820,8 +823,10 @@ 9090 SNAP Stick 200 9132 LCD and Temperature Interface 9133 CallerID + 9134 Virtual keyboard 9135 Rotary Pub alarm 9136 Pulsecounter + 9137 Ledbutton interface 9e90 Marvell OpenRD Base/Client 9f08 CIB-1894 Conclusion SmartLink Box: 9f80 Ewert Energy Systems CANdapter @@ -925,6 +930,7 @@ f7c0 ZeitControl Cardsystems TagTracer MIFARE f850 USB-UIRT (Universal Infrared Receiver+Transmitter) f918 Ant8 Logic Probe + f9d9 Wetterempfanger 147.3kHz fa00 Matrix Orbital USB Serial fa01 Matrix Orbital MX2 or MX3 fa02 Matrix Orbital MX4 or MX5 @@ -1014,6 +1020,7 @@ 00c0 Wireless Remocon 00f7 Smart Display PK-SD10 011d e228 Mobile Phone + 0193 RVT-R Writer 0203 HID Audio Controls 021d Aterm WL54SU2 802.11g Wireless Adapter [Atheros AR5523] 0248 Aterm PA-WL54GU @@ -1374,6 +1381,7 @@ 3220 Sound Blaster Tactic(3D) Sigma sound card 3232 Sound Blaster Premium HD [SBX] 3237 SB X-Fi Surround 5.1 Pro + 3241 Sound Blaster JAM 3263 SB X-Fi Surround 5.1 Pro 3f00 E-Mu Xboard 25 MIDI Controller 3f02 E-Mu 0202 @@ -1441,6 +1449,7 @@ 4088 Live! Cam Chat HD [VF0700] 4095 Live! Cam Sync HD [VF0770] 4097 Live! Cam Chat HD [VF0700] + 4099 Creative VF0800 [RealSense Camera SR300] 4100 Nomad Jukebox 2 4101 Nomad Jukebox 3 4102 NOMAD MuVo^2 @@ -1523,6 +1532,7 @@ 0155 5800 XpressMusic (Multimedia mode) 0156 5800 XpressMusic (Storage mode) 0157 5800 XpressMusic (Imaging mode) + 0189 N810 Internet Tablet WiMAX 0199 6700 Classic (msc) 019a 6700 Classic (PC Suite) 019b 6700 Classic (mtp) @@ -1530,7 +1540,7 @@ 01b1 6303 classic Phone (Mass storage mode) 01b2 6303 classic Phone (Printing and media mode) 01c7 N900 (Storage Mode) - 01c8 N900 (PC-Suite Mode) + 01c8 N900/N950 (PC-Suite Mode) 0228 5530 XpressMusic 023a 6730 Classic 026a N97 (mass storage) @@ -1550,7 +1560,8 @@ 03c1 C7-00 (Media transfer mode) 03c2 Sim 03cd C7-00 (Nokia Suite mode) - 03d1 N950 + 03d1 N950 (Storage Mode) + 03d2 N950 (PC Suite mode) 0400 7600 Phone Parent 0401 6650 GSM Phone 0402 6255 Phone Parent @@ -1581,7 +1592,7 @@ 0423 6682 Phone Parent 0428 6230i Modem 0429 6230i MultiMedia Card - 0431 770 Internet Tablet + 0431 770/N800 Internet Tablet 0432 N90 Phone Parent 0435 E70 (IP Passthrough/RNDIS mode) 0436 E60 (IP Passthrough/RNDIS mode) @@ -1615,7 +1626,9 @@ 04f9 6300 (PC Suite mode) 0508 E65 (PC Suite mode) 0509 E65 (Storage mode) - 0518 N9 Phone + 0518 N9 (Storage mode) + 0519 N9 (RNDIS/Ethernet mode) + 051a N9 (PC Suite mode) 054d C2-01 0600 Digital Pen SU-1B 0610 CS-15 (Internet Stick 3G modem) @@ -2000,6 +2013,7 @@ b651 Ferrari GT Rumble Force Wheel b653 RGT Force Feedback Clutch Racing Wheel b654 Ferrari GT Force Feedback Wheel + b677 T150 Racing Wheel b678 T.Flight Rudder Pedals b679 T-Rudder b687 TWCS Throttle @@ -2528,6 +2542,7 @@ 09a0 RTL8153B GigE [Surface Ethernet Adapter] 09c0 Surface Type Cover 0a00 Lumia 950 Dual SIM (RM-1118) + 0b12 Xbox Wireless Controller (model 1914) 930a ISOUSB.SYS Intel 82930 Isochronous IO Test Board ffca Catalina fff8 Keyboard @@ -2679,11 +2694,18 @@ 0837 BCC950 ConferenceCam 0840 QuickCam Express 0843 Webcam C930e + 0845 ConferenceCam CC3000e Camera + 0846 ConferenceCam CC3000e Speakerphone + 084b ConferenceCam Connect Video 0850 QuickCam Web + 0857 Logi Group Speakerphone 085c C922 Pro Stream Webcam + 085e BRIO Ultra HD Webcam 0870 QuickCam Express + 0882 Logi Group Speakerphone 0890 QuickCam Traveler - 0892 OrbiCam + 0892 C920 HD Pro Webcam + 0893 StreamCam 0894 CrystalCam 0895 QuickCam for Dell Notebooks 0896 OrbiCam @@ -2792,6 +2814,7 @@ 0a5b G933 Wireless Headset Dongle 0a5d G933 Headset Battery Charger 0a66 [G533 Wireless Headset Dongle] + 0a8f H390 headset with microphone 0b02 C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode) 8801 Video Camera b014 Bluetooth Mouse M336/M337/M535 @@ -2871,6 +2894,7 @@ c083 G403 Prodigy Gaming Mouse c084 G203 Gaming Mouse c08b G502 SE HERO Gaming Mouse + c092 G203 LIGHTSYNC Gaming Mouse c101 UltraX Media Remote c110 Harmony 785/880/885 Remote c111 Harmony 525 Remote @@ -2930,6 +2954,7 @@ c24e G500s Laser Gaming Mouse c24f G29 Driving Force Racing Wheel [PS3] c260 G29 Driving Force Racing Wheel [PS4] + c262 G920 Driving Force Racing Wheel c281 WingMan Force c283 WingMan Force 3D c285 WingMan Strike Force 3D @@ -2977,6 +3002,7 @@ c332 G502 Proteus Spectrum Optical Mouse c335 G910 Orion Spectrum Mechanical Keyboard c33a G413 Gaming Keyboard + c33f G815 Mechanical Keyboard c401 TrackMan Marble Wheel c402 Marble Mouse (2-button) c403 Turbo TrackMan Marble FX @@ -3017,6 +3043,7 @@ c534 Unifying Receiver c537 Cordless Mouse Receiver c53a PowerPlay Wireless Charging System + c53d G631 Keyboard c603 3Dconnexion Spacemouse Plus XT c605 3Dconnexion CADman c606 3Dconnexion Spacemouse Classic @@ -3297,6 +3324,8 @@ 5001 Cabo I Camera 5002 VideoCam CABO II 5003 VideoCam + 8018 Expert Wireless Trackball Mouse (K72359WW) + 8068 Pro Fit Ergo Vertical Wireless Trackball 047e Agere Systems, Inc. (Lucent) 0300 ORiNOCO Card 1001 USS720 Parallel Port @@ -3317,6 +3346,7 @@ c008 Audio 655 DSP c00e Blackwire C310 headset c03b HD1 + ca01 Calisto 800 Series da60 DA60 0480 Toshiba America Inc 0001 InTouch Module @@ -3358,6 +3388,7 @@ 0408 FS-1320D Printer 0640 ECOSYS M6026cdn 069b ECOSYS M2635dn + 06b4 ECOSYS M5526cdw 0483 STMicroelectronics 0137 BeWAN ADSL USB ST (blue or green) 0138 Unicorn II (ST70138B + MTC-20174TQ chipset) @@ -3696,6 +3727,7 @@ 04ac Xerox Travel Scanner 100 04bb strobe 400 scanner 04cd Xerox Travel Scanner 150 + 04ee Duplex Combo Scanner 04a8 Multivideo Labs, Inc. 0101 Hub 0303 Peripheral Switch @@ -3902,6 +3934,7 @@ 190d CanoScan 9000F Mark II 190e CanoScan LiDE 120 190f CanoScan LiDE 220 + 1913 CanoScan LiDE 300 2200 CanoScan LiDE 25 2201 CanoScan FB320U 2202 CanoScan FB620U @@ -4363,6 +4396,7 @@ 32b4 EOS Rebel T6 32bb EOS M5 32bf PowerShot SX420 IS + 32c0 PowerShot ELPH 190IS 32c1 PowerShot ELPH 180 / IXUS 175 32c2 PowerShot SX720 HS 32c5 EOS M6 @@ -4439,6 +4473,8 @@ 040e DSC D70s (ptp) 040f D200 (mass storage mode) 0410 D200 (ptp) + 0411 D80 (mass storage mode) + 0412 D80 (MTP/PTP mode) 0413 D40 (mass storage mode) 041e D60 digital camera (mass storage mode) 0422 D700 (ptp) @@ -4492,6 +4528,7 @@ 04b4 Cypress Semiconductor Corp. 0001 Mouse 0002 CY7C63x0x Thermometer + 0008 CDC ACM serial port 0033 Mouse 0060 Wireless optical mouse 00f3 FX3 micro-controller (DFU mode) @@ -4501,6 +4538,7 @@ 0130 MyIRC Remote Receiver 0306 Telephone Receiver 0407 Optical Skype Mouse + 0818 AE-SMKD92-* [Thumb Keyboard] 0bad MetaGeek Wi-Spy 1002 CY7C63001 R100 FM Radio 1006 Human Interface Device @@ -4731,6 +4769,7 @@ 0e03 Thermal Receipt Printer [TM-T20] 1114 XP-440 [Expression Home Small-in-One Printer] 1129 ET-4750 [WorkForce ET-4750 EcoTank All-in-One] + 1168 Workforce WF-7820/7840 Series 04b9 Rainbow Technologies, Inc. 0300 SafeNet USB SuperPro/UltraPro 1000 iKey 1000 Token @@ -4848,6 +4887,7 @@ 11f3 fi-6130Z 125a PalmSecure Sensor Device - MP 132e fi-7160 + 159f ScanSnap iX1500 200f Sigma DP2 (Mass Storage) 2010 Sigma DP2 (PictBridge) 201d SATA 3.0 6Gbit/s Adaptor [GROOVY] @@ -4967,6 +5007,7 @@ 01d3 FinePix A920 (PTP) 01d4 FinePix F50fd (PTP) 01d5 FinePix F47 (PTP) + 01e7 Fujifilm A850 Digital Camera 01f7 FinePix J250 (PTP) 01fd A160 023e FinePix AX300 @@ -4974,6 +5015,7 @@ 0241 FinePix S3200 Digital Camera 0278 FinePix JV300 02c5 FinePix S9900W Digital Camera (PTP) + 02e0 X-T200 Digital Camera 5006 ASK-300 04cc ST-Ericsson 1122 Hub @@ -5063,6 +5105,7 @@ 0006 Wired Keyboard (78/79 key) [RPI Wired Keyboard 5] 0022 Portable Keyboard 0348 Keyboard + 0407 Keyboard [TEX Shinobi] 048e Optical Mouse 0499 Optical Mouse 1135 Mouse [MGK-15BU/MLK-15BU] @@ -5090,9 +5133,15 @@ a09f E-Signal LUOM G10 Mechanical Gaming Mouse a100 Mouse [HV-MS735] a11b Mouse [MX-3200] + a153 Optical Gaming Mouse a29f Microarray fingerprint reader b534 LGT8F328P Microprocessor e002 MCU + fc2a Gaming Mouse [Redragon M709] + fc30 Gaming Mouse [Redragon M711] + fc38 Gaming Mouse [Redragon M602-RGB] + fc4d Gaming Mouse [Redragon M908] + fc55 Venus MMO Gaming Mouse 04da Panasonic (Matsushita) 0901 LS-120 Camera 0912 SDR-S10 @@ -5598,6 +5647,7 @@ b1ac HP Laptop Integrated Webcam [2 MP Fixed] b1b4 Lenovo Integrated Camera b1b9 Asus Integrated Webcam + b1bb 2.0M UVC WebCam b1cf Lenovo Integrated Camera b1d6 CNF9055 Toshiba Webcam b1d8 1.3M Webcam @@ -5626,6 +5676,8 @@ b444 Lenovo Integrated Webcam b49f Bluetooth (RTL8723BE) b563 Integrated Camera + b5ab Integrated Camera + b5ac Integrated IR Camera b5ce Integrated Camera b5cf Integrated IR Camera b5db HP Webcam @@ -5647,6 +5699,7 @@ 02f4 2.4G Cordless Mouse 0381 Touchscreen 04a0 Dream Cheeky Stress/Panic Button + 0c28 fingerprint sensor [FeinTech FPS00200] 2234 Touchscreen 04f4 Harting Elektronik, Inc. 04f5 Fujitsu-ICL Systems, Inc. @@ -5691,6 +5744,8 @@ 002b HL-5250DN Printer 002c Printer 002d Printer + 0037 HL-3040CN series + 0038 HL-3070CW series 0039 HL-5340 series 0041 HL-2250DN Laser Printer 0042 HL-2270DW Laser Printer @@ -5871,6 +5926,7 @@ 01eb MFC-7320 01ec MFC-9640CW 01f4 MFC-5890CN + 0204 DCP-165C 020a MFC-8670DN 020c DCP-9042CDN 020d MFC-9450CDN @@ -6149,6 +6205,19 @@ 03bc MFC-L2700DN 03bd DCP-J762N 03fd ADS-2700W + 043f MFC-L3770CDW + 0440 MFC-9350CDW + 0441 MFC-L3750CDW + 0442 MFC-L3745CDW + 0443 MFC-L3735CDN + 0444 MFC-9150CDN + 0445 MFC-L3730CDN + 0446 MFC-L3710CW + 0447 DCP-9030CDN + 0448 DCP-L3550CDW + 044a HL-L3290CDW + 044b DCP-L3510CDW + 044c DCP-L3551CDW 1000 Printer 1002 Printer 2002 PTUSB Printing @@ -6173,6 +6242,7 @@ 204d QL-720NW Label Printer (mass storage mode) 2061 PT-P700 P-touch Label Printer 2064 PT-P700 P-touch Label Printer RemovableDisk + 2074 PT-D600 P-touch Label Printer 209b QL-800 Label Printer 209c QL-810W Label Printer 209d QL-820NWB Label Printer @@ -6433,12 +6503,14 @@ a4a2 Linux-USB Ethernet/RNDIS Gadget a4a3 Linux-USB user-mode isochronous source/sink a4a4 Linux-USB user-mode bulk source/sink - a4a5 Pocketbook Pro 903 / Mobius 2 Action Cam / xDuoo X3 / PocketBook Pro 602 + a4a5 Linux-USB File-backed Storage Gadget a4a6 Linux-USB Serial Gadget a4a7 Linux-USB Serial Gadget (CDC ACM mode) a4a8 Linux-USB Printer Gadget a4a9 Linux-USB OBEX Gadget a4aa Linux-USB CDC Composite Gadge (Ethernet and ACM) + a4ab Linux-USB Multifunction Composite Gadget + a4ac Linux-USB HID Gadget 0526 Temic MHS S.A. 0527 ALTRA 0528 ATI Technologies, Inc. @@ -6768,9 +6840,11 @@ 0689 Walkman NWZ-B173F 06bb WALKMAN NWZ-F805 06c3 RC-S380 + 07c3 ILCE-6000 (aka Alpha-6000) in Mass Storage mode 07c4 ILCE-6000 (aka Alpha-6000) in Mass Storage mode 082f Walkman NWZW Series 0847 WG-C10 Portable Wireless Server + 0877 UP-D898/X898 series 0884 MDR-ZX770BN [Wireless Noise Canceling Stereo Headset] 088c Portable Headphone Amplifier 08b7 ILCE-6000 (aka Alpha-6000) in MTP mode @@ -6782,8 +6856,12 @@ 0c02 ILCE-7M3 [A7III] in Mass Storage mode 0c03 ILCE-7M3 [A7III] in MTP mode 0c34 ILCE-7M3 [A7III] in PC Remote mode + 0c7f WH-CH700N [Wireless Noise-Canceling Headphones] 0cd3 WH-1000XM3 [Wireless Noise-Canceling Headphones] 0cda PlayStation Classic controller + 0ce0 WF-1000XM3 [Wireless Noise-Canceling Headphones] + 0cf0 MRW-G1 + 0d58 WH-1000XM4 [Wireless Noise-Canceling Headphones] 1000 Wireless Buzz! Receiver 054d Try Corp. 054e Proside Corp. @@ -6828,6 +6906,7 @@ 2213 CS682 2-Port USB 2.0 DVI KVM Switch 2221 Winbond Hermon 2404 4-port switch + 2419 Virtual mouse/keyboard device 2600 IDE Bridge 2701 CE700A KVM Extender 4000 DSB-650 10Mbps Ethernet [klsi] @@ -7158,7 +7237,19 @@ 0001 Monitor 0002 HID Monitor Controls 0003 Device Bay Controller + 4000 FlexScan EV3237 4001 Monitor + 4002 USB HID Monitor + 4014 FlexScan EV2750 + 4026 FlexScan EV2451 + 4027 FlexScan EV2456 + 4036 FlexScan EV2785 + 4037 FlexScan EV3285 + 4044 FlexScan EV2457 + 4059 FlexScan EV2760 + 405b FlexScan EV2460 + 405f FlexScan EV2795 + 4065 FlexScan EV3895 056e Elecom Co., Ltd 0002 29UO Mouse 0057 Micro Grast Pop M-PGDL @@ -7926,6 +8017,7 @@ 9230 Camera 9320 Camera 9331 Camera + 9332 Camera - 1080p 9422 Camera 9520 Camera 05a4 Ortek Technology, Inc. @@ -8146,6 +8238,7 @@ 8204 Built-in Bluetooth 2.0+EDR HCI 8205 Bluetooth HCI 8206 Bluetooth HCI + 8207 Built-in Bluetooth 820a Bluetooth HID Keyboard 820b Bluetooth HID Mouse 820f Bluetooth HCI @@ -8156,6 +8249,7 @@ 8218 Bluetooth Host Controller 821a Bluetooth Host Controller 821f Built-in Bluetooth 2.0+EDR HCI + 8233 iBridge 8240 Built-in IR Receiver 8241 Built-in IR Receiver 8242 Built-in IR Receiver @@ -8696,6 +8790,7 @@ f102 VX7012 TV Box f103 VX7012 TV Box f104 VX7012 TV Box + f12a Digital Microscope fd21 3M TL20 Temperature Logger fe00 Razer Mouse 05e4 Red Wing Corp. @@ -8752,6 +8847,7 @@ 05fc Harman 0001 Soundcraft Si Multi Digital Card 0010 Soundcraft Si MADI combo card + 0021 Soundcraft Signature 12 MTK 7849 Harman/Kardon SoundSticks 05fd InterAct, Inc. 0239 SV-239 HammerHead Digital @@ -8786,6 +8882,7 @@ 0002 Sino Wealth keyboard/mouse 2.4 GHz receiver 00f1 Keyboard (Labtec Ultra Flat Keyboard) 00f2 Keyboard (Labtec Ultra Flat Keyboard) + 1002 Mobius actioncam (webcam mode) 6871 Mouse 8611 NTK96550 based camera 0604 Jean Co., Ltd @@ -9487,6 +9584,12 @@ 00f7 OKI B4600 Mono Printer 015e OKIPOS 411/412 POS Printer 01c9 OKI B430 Mono Printer + 01db MC860 Multifunction Printer + 01dc MC860 Multifunction Printer + 01dd MC860 Multifunction Printer + 01de MC860 Multifunction Printer + 01df CX2633 Multifunction Printer + 01e0 ES8460 Multifunction Printer 020b OKI ES4140 Mono Printer 02bb OKI PT390 POS Printer 0383 MC563 Multifunction Printer @@ -20352,6 +20455,12 @@ 1101 Generic Display Device (Mass storage mode) c101 Generic Display Device 1de6 MICRORISC s.r.o. +1df7 SDRplay + 2500 RSP1 + 3000 RSP1a + 3010 RSP2/RSP2pro + 3020 RSPduo + 3030 RSPdx 1e0e Qualcomm / Option f000 iCON 210 UMTS Surfstick 1e10 Point Grey Research, Inc. @@ -22447,6 +22556,9 @@ 32b3 TEXA d1a6 TXT Multihub d1a7 TXT Multihub +3310 MUDITA Sp. z o.o. + 0100 Pure + 0101 Pure tethering 3333 InLine 3333 2 port KVM switch model 60652K 3334 AEI @@ -22458,6 +22570,9 @@ ffff Mio DigiWalker Sync 3344 Leaguer Microelectronics (LME) 3744 OEM PC Remote +3384 System76 + 0000 Thelio Io (thelio-io) + 0001 Launch Configurable Keyboard (launch_1) 348f ISY 2322 Wireless Presenter 3504 Micro Star
hooks/post-receive -- IPFire 2.x development tree