diff options
author | Arpan Kapoor | 2020-08-16 19:42:36 +0530 |
---|---|---|
committer | Arpan Kapoor | 2020-08-16 19:45:47 +0530 |
commit | d4c2f49ebb1840581d9e4323f13eefc82cc687ba (patch) | |
tree | 3c88b203f5a6e6c62cb77b8349dbf11fdcf3e1b1 | |
parent | 1f6c87a7d3acefddd19e40b04df3358fb2fc01e5 (diff) | |
download | aur-hostapd-rtl871xdrv.tar.gz |
similar to community build
-rw-r--r-- | .SRCINFO | 21 | ||||
-rw-r--r-- | PKGBUILD | 89 | ||||
-rw-r--r-- | config | 322 | ||||
-rw-r--r-- | hostapd-noscan.patch | 76 | ||||
-rw-r--r-- | openvswitch.patch | 137 |
5 files changed, 364 insertions, 281 deletions
@@ -1,7 +1,7 @@ pkgbase = hostapd-rtl871xdrv pkgdesc = IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator pkgver = 2.9 - pkgrel = 1 + pkgrel = 2 url = http://w1.fi/hostapd/ arch = i686 arch = x86_64 @@ -9,23 +9,30 @@ pkgbase = hostapd-rtl871xdrv arch = armv6h arch = armv7h arch = aarch64 - license = GPL + license = BSD makedepends = git - depends = openssl + depends = glibc depends = libnl + depends = openssl + depends = sqlite provides = hostapd options = emptydirs + backup = etc/hostapd/hostapd.accept + backup = etc/hostapd/hostapd.conf + backup = etc/hostapd/hostapd.deny + backup = etc/hostapd/hostapd.eap_user + backup = etc/hostapd/hostapd.radius_clients + backup = etc/hostapd/hostapd.vlan + backup = etc/hostapd/hostapd.wpa_psk source = https://w1.fi/releases/hostapd-2.9.tar.gz source = git+https://github.com/pritambaral/hostapd-rtl871xdrv.git source = config source = hostapd.service - source = hostapd-noscan.patch - source = openvswitch.patch + validpgpkeys = EC4AA0A991A5F2464582D52D2B6EF432EFC895FA sha256sums = 881d7d6a90b2428479288d64233151448f8990ab4958e0ecaca7eeb3c9db2bd7 sha256sums = SKIP - sha256sums = a39e011bf0c3f2d21db8816a7e608a99b9d598c7b559d58d026f10e4359d428d + sha256sums = 87445203a518864e704b85fa970d90940e9a5d9b401ceb802d11caab6c07a495 sha256sums = 989bc6855f44c0b360e3d4cd4a146c35b7c12f8a0ced627b4b033f58edcade8e - sha256sums = c15b4310f21b41254e4d4485bc04e36926572f213e7c4d3a17038fdff19529b5 pkgname = hostapd-rtl871xdrv @@ -3,38 +3,43 @@ _pkgname=hostapd pkgname="${_pkgname}-rtl871xdrv" pkgver=2.9 -pkgrel=1 +pkgrel=2 pkgdesc='IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator' arch=('i686' 'x86_64' 'arm' 'armv6h' 'armv7h' 'aarch64') url='http://w1.fi/hostapd/' -license=('GPL') -depends=('openssl' 'libnl') +license=('BSD') +depends=('glibc' 'libnl' 'openssl' 'sqlite') +backup=("etc/${_pkgname}/${_pkgname}."{accept,conf,deny,eap_user,radius_clients,vlan,wpa_psk}) makedepends=('git') provides=("${_pkgname}") options=(emptydirs) -source=(https://w1.fi/releases/"${_pkgname}-${pkgver}".tar.gz +source=("https://w1.fi/releases/${_pkgname}-${pkgver}.tar.gz" git+https://github.com/pritambaral/hostapd-rtl871xdrv.git config - hostapd.service - hostapd-noscan.patch - openvswitch.patch) + hostapd.service) sha256sums=('881d7d6a90b2428479288d64233151448f8990ab4958e0ecaca7eeb3c9db2bd7' 'SKIP' - 'SKIP' - '989bc6855f44c0b360e3d4cd4a146c35b7c12f8a0ced627b4b033f58edcade8e' - '5ad1aadcd7682e517cab6afb474df6b9abad1a08dbe2bb40571a1b91c33f6f09' - '64c06b5f6f58923446fd9351c596c759dec130997677f8b9f013c8ce360fbd98') + '87445203a518864e704b85fa970d90940e9a5d9b401ceb802d11caab6c07a495' + '989bc6855f44c0b360e3d4cd4a146c35b7c12f8a0ced627b4b033f58edcade8e') +validpgpkeys=('EC4AA0A991A5F2464582D52D2B6EF432EFC895FA') # Jouni Malinen prepare() { cd "${_pkgname}-${pkgver}" - local i; for i in "${source[@]}"; do - case $i in - *.patch) - msg2 "Applying patch ${i}" - patch -p1 -i "${srcdir}/${i}" - ;; - esac - done + # fix include locations in main configuration file + sed -e 's|/etc/hostapd|/etc/hostapd/hostapd|g' \ + -e 's|/var/run|/run|g' \ + -e 's|radius_attr.sqlite|/var/lib/hostapd/radius_attr.sqlite|g' \ + -e 's|hostapd.cred|/var/lib/hostapd/hostapd.cred|g' \ + -e 's|hostapd.ap_settings|/var/lib/hostapd/hostapd.ap_settings|g' \ + -e 's|hostapd_wps_pin_requests|hostapd/wps_pin_requests|g' \ + -i "${_pkgname}/${_pkgname}.conf" + # extract license + cat "${_pkgname}/README" |head -n47 |tail -n5 > LICENSE + # link build configuration into place: + # an up-to-date version of the build configuration can be found in + # hostapd/defconfig and should be diffed with the packaged one before every + # build + ln -sv "${srcdir}/config" "${_pkgname}/.config" # Realtek patch patch -Np1 -i "${srcdir}/hostapd-rtl871xdrv/rtlxdrv.patch" @@ -45,35 +50,29 @@ prepare() { build() { cd "${_pkgname}-${pkgver}/hostapd" - cp ../../config .config - sed -i 's#/etc/hostapd#/etc/hostapd/hostapd#' hostapd.conf - export CFLAGS="$CFLAGS $(pkg-config --cflags libnl-3.0)" make } package() { - # Systemd unit - install -Dm644 hostapd.service "${pkgdir}/usr/lib/systemd/system/hostapd.service" - cd "${_pkgname}-${pkgver}" - - # License - install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${_pkgname}/COPYING" - - cd hostapd - - # Binaries - install -d "${pkgdir}/usr/bin" - install -t "${pkgdir}/usr/bin" hostapd hostapd_cli - - # Configuration - install -d "${pkgdir}/etc/hostapd" - install -d "${pkgdir}/usr/share/doc/hostapd" - install -m644 -t "${pkgdir}/usr/share/doc/hostapd" \ - hostapd.{accept,conf,deny,eap_user,radius_clients,sim_db,vlan,wpa_psk} \ - wired.conf hlr_auc_gw.milenage_db - - # Man pages - install -Dm644 hostapd.8 "${pkgdir}/usr/share/man/man8/hostapd.8" - install -Dm644 hostapd_cli.1 "${pkgdir}/usr/share/man/man1/hostapd_cli.1" + make -C "${_pkgname}" install DESTDIR="${pkgdir}" BINDIR="/usr/bin" + # systemd service + install -vDm 644 "../${_pkgname}.service" \ + -t "$pkgdir/usr/lib/systemd/system/" + # license + install -vDm 644 LICENSE -t "$pkgdir/usr/share/licenses/${_pkgname}/" + # config + install -d "$pkgdir/etc/hostapd" + install -vDm 640 "${_pkgname}/${_pkgname}."{accept,conf,deny,eap_user,radius_clients,vlan,wpa_psk} \ + -t "${pkgdir}/etc/${_pkgname}" + # docs + install -vDm 644 "${_pkgname}/"{hostapd.sim_db,wired.conf,hlr_auc_gw.{txt,milenage_db}} \ + "${_pkgname}/"{README*,ChangeLog} \ + -t "${pkgdir}/usr/share/doc/${_pkgname}" + # man pages + install -vDm 644 "${_pkgname}/${_pkgname}.8" -t "$pkgdir/usr/share/man/man8/" + install -vDm 644 "${_pkgname}/${_pkgname}_cli.1" \ + -t "$pkgdir/usr/share/man/man1/" + # state dir + install -vdm 750 "${pkgdir}/var/lib/${_pkgname}" } @@ -15,8 +15,34 @@ CONFIG_DRIVER_HOSTAP=y # Driver interface for wired authenticator CONFIG_DRIVER_WIRED=y -# Driver interface for Prism54 driver -CONFIG_DRIVER_PRISM54=y +# Driver interface for drivers using the nl80211 kernel interface +CONFIG_DRIVER_NL80211=y + +# QCA vendor extensions to nl80211 +#CONFIG_DRIVER_NL80211_QCA=y + +# driver_nl80211.c requires libnl. If you are compiling it yourself +# you may need to point hostapd to your version of libnl. +# +#CFLAGS += -I$<path to libnl include files> +#LIBS += -L$<path to libnl library files> + +# Use libnl v2.0 (or 3.0) libraries. +#CONFIG_LIBNL20=y + +# Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored) +CONFIG_LIBNL32=y + + +# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver) +#CONFIG_DRIVER_BSD=y +#CFLAGS += -I/usr/local/include +#LIBS += -L/usr/local/lib +#LIBS_p += -L/usr/local/lib +#LIBS_c += -L/usr/local/lib + +# Driver interface for no driver (e.g., RADIUS server only) +#CONFIG_DRIVER_NONE=y # IEEE 802.11F/IAPP CONFIG_IAPP=y @@ -24,18 +50,18 @@ CONFIG_IAPP=y # WPA2/IEEE 802.11i RSN pre-authentication CONFIG_RSN_PREAUTH=y -# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS) -CONFIG_PEERKEY=y - # IEEE 802.11w (management frame protection) -# This version is an experimental implementation based on IEEE 802.11w/D1.0 -# draft and is subject to change since the standard has not yet been finalized. -# Driver support is also needed for IEEE 802.11w. CONFIG_IEEE80211W=y +# Support Operating Channel Validation +#CONFIG_OCV=y + # Integrated EAP server CONFIG_EAP=y +# EAP Re-authentication Protocol (ERP) in integrated EAP server +CONFIG_ERP=y + # EAP-MD5 for the integrated EAP server CONFIG_EAP_MD5=y @@ -60,12 +86,19 @@ CONFIG_EAP_SIM=y # EAP-AKA for the integrated EAP server CONFIG_EAP_AKA=y +# EAP-AKA' for the integrated EAP server +# This requires CONFIG_EAP_AKA to be enabled, too. +#CONFIG_EAP_AKA_PRIME=y + # EAP-PAX for the integrated EAP server CONFIG_EAP_PAX=y # EAP-PSK for the integrated EAP server (this is _not_ needed for WPA-PSK) CONFIG_EAP_PSK=y +# EAP-pwd for the integrated EAP server (secure authentication with a password) +#CONFIG_EAP_PWD=y + # EAP-SAKE for the integrated EAP server CONFIG_EAP_SAKE=y @@ -74,6 +107,35 @@ CONFIG_EAP_GPSK=y # Include support for optional SHA256 cipher suite in EAP-GPSK CONFIG_EAP_GPSK_SHA256=y +# EAP-FAST for the integrated EAP server +#CONFIG_EAP_FAST=y + +# EAP-TEAP for the integrated EAP server +# Note: The current EAP-TEAP implementation is experimental and should not be +# enabled for production use. The IETF RFC 7170 that defines EAP-TEAP has number +# of conflicting statements and missing details and the implementation has +# vendor specific workarounds for those and as such, may not interoperate with +# any other implementation. This should not be used for anything else than +# experimentation and interoperability testing until those issues has been +# resolved. +#CONFIG_EAP_TEAP=y + +# Wi-Fi Protected Setup (WPS) +CONFIG_WPS=y +# Enable UPnP support for external WPS Registrars +CONFIG_WPS_UPNP=y +# Enable WPS support with NFC config method +CONFIG_WPS_NFC=y + +# EAP-IKEv2 +#CONFIG_EAP_IKEV2=y + +# Trusted Network Connect (EAP-TNC) +#CONFIG_EAP_TNC=y + +# EAP-EKE for the integrated EAP server +#CONFIG_EAP_EKE=y + # PKCS#12 (PFX) support (used to read private key and certificate file from # a file that usually has extension .p12 or .pfx) CONFIG_PKCS12=y @@ -85,22 +147,250 @@ CONFIG_RADIUS_SERVER=y # Build IPv6 support for RADIUS operations CONFIG_IPV6=y -CONFIG_DRIVER_NL80211=y +# IEEE Std 802.11r-2008 (Fast BSS Transition) +CONFIG_IEEE80211R=y + +# Use the hostapd's IEEE 802.11 authentication (ACL), but without +# the IEEE 802.11 Management capability (e.g., FreeBSD/net80211) +#CONFIG_DRIVER_RADIUS_ACL=y +# IEEE 802.11n (High Throughput) support CONFIG_IEEE80211N=y -CONFIG_LIBNL32=y +# Wireless Network Management (IEEE Std 802.11v-2011) +# Note: This is experimental and not complete implementation. +#CONFIG_WNM=y + +# IEEE 802.11ac (Very High Throughput) support +CONFIG_IEEE80211AC=y + +# IEEE 802.11ax HE support +# Note: This is experimental and work in progress. The definitions are still +# subject to change and this should not be expected to interoperate with the +# final IEEE 802.11ax version. +#CONFIG_IEEE80211AX=y + +# Remove debugging code that is printing out debug messages to stdout. +# This can be used to reduce the size of the hostapd considerably if debugging +# code is not needed. +#CONFIG_NO_STDOUT_DEBUG=y + +# Add support for writing debug log to a file: -f /tmp/hostapd.log +# Disabled by default. +#CONFIG_DEBUG_FILE=y + +# Send debug messages to syslog instead of stdout +#CONFIG_DEBUG_SYSLOG=y + +# Add support for sending all debug messages (regardless of debug verbosity) +# to the Linux kernel tracing facility. This helps debug the entire stack by +# making it easy to record everything happening from the driver up into the +# same file, e.g., using trace-cmd. +#CONFIG_DEBUG_LINUX_TRACING=y + +# Remove support for RADIUS accounting +#CONFIG_NO_ACCOUNTING=y + +# Remove support for RADIUS +#CONFIG_NO_RADIUS=y + +# Remove support for VLANs +#CONFIG_NO_VLAN=y + +# Enable support for fully dynamic VLANs. This enables hostapd to +# automatically create bridge and VLAN interfaces if necessary. +#CONFIG_FULL_DYNAMIC_VLAN=y + +# Use netlink-based kernel API for VLAN operations instead of ioctl() +# Note: This requires libnl 3.1 or newer. +#CONFIG_VLAN_NETLINK=y + +# Remove support for dumping internal state through control interface commands +# This can be used to reduce binary size at the cost of disabling a debugging +# option. +#CONFIG_NO_DUMP_STATE=y + +# Enable tracing code for developer debugging +# This tracks use of memory allocations and other registrations and reports +# incorrect use with a backtrace of call (or allocation) location. +#CONFIG_WPA_TRACE=y +# For BSD, comment out these. +#LIBS += -lexecinfo +#LIBS_p += -lexecinfo +#LIBS_c += -lexecinfo + +# Use libbfd to get more details for developer debugging +# This enables use of libbfd to get more detailed symbols for the backtraces +# generated by CONFIG_WPA_TRACE=y. +#CONFIG_WPA_TRACE_BFD=y +# For BSD, comment out these. +#LIBS += -lbfd -liberty -lz +#LIBS_p += -lbfd -liberty -lz +#LIBS_c += -lbfd -liberty -lz + +# hostapd depends on strong random number generation being available from the +# operating system. os_get_random() function is used to fetch random data when +# needed, e.g., for key generation. On Linux and BSD systems, this works by +# reading /dev/urandom. It should be noted that the OS entropy pool needs to be +# properly initialized before hostapd is started. This is important especially +# on embedded devices that do not have a hardware random number generator and +# may by default start up with minimal entropy available for random number +# generation. +# +# As a safety net, hostapd is by default trying to internally collect +# additional entropy for generating random data to mix in with the data +# fetched from the OS. This by itself is not considered to be very strong, but +# it may help in cases where the system pool is not initialized properly. +# However, it is very strongly recommended that the system pool is initialized +# with enough entropy either by using hardware assisted random number +# generator or by storing state over device reboots. +# +# hostapd can be configured to maintain its own entropy store over restarts to +# enhance random number generation. This is not perfect, but it is much more +# secure than using the same sequence of random numbers after every reboot. +# This can be enabled with -e<entropy file> command line option. The specified +# file needs to be readable and writable by hostapd. +# +# If the os_get_random() is known to provide strong random data (e.g., on +# Linux/BSD, the board in question is known to have reliable source of random +# data from /dev/urandom), the internal hostapd random pool can be disabled. +# This will save some in binary size and CPU use. However, this should only be +# considered for builds that are known to be used on devices that meet the +# requirements described above. +#CONFIG_NO_RANDOM_POOL=y + +# Should we attempt to use the getrandom(2) call that provides more reliable +# yet secure randomness source than /dev/random on Linux 3.17 and newer. +# Requires glibc 2.25 to build, falls back to /dev/random if unavailable. +#CONFIG_GETRANDOM=y + +# Should we use poll instead of select? Select is used by default. +#CONFIG_ELOOP_POLL=y + +# Should we use epoll instead of select? Select is used by default. +#CONFIG_ELOOP_EPOLL=y + +# Should we use kqueue instead of select? Select is used by default. +#CONFIG_ELOOP_KQUEUE=y + +# Select TLS implementation +# openssl = OpenSSL (default) +# gnutls = GnuTLS +# internal = Internal TLSv1 implementation (experimental) +# linux = Linux kernel AF_ALG and internal TLSv1 implementation (experimental) +# none = Empty template +#CONFIG_TLS=openssl + +# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1) +# can be enabled to get a stronger construction of messages when block ciphers +# are used. +#CONFIG_TLSV11=y + +# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.2) +# can be enabled to enable use of stronger crypto algorithms. +#CONFIG_TLSV12=y + +# Select which ciphers to use by default with OpenSSL if the user does not +# specify them. +#CONFIG_TLS_DEFAULT_CIPHERS="DEFAULT:!EXP:!LOW" + +# If CONFIG_TLS=internal is used, additional library and include paths are +# needed for LibTomMath. Alternatively, an integrated, minimal version of +# LibTomMath can be used. See beginning of libtommath.c for details on benefits +# and drawbacks of this option. +#CONFIG_INTERNAL_LIBTOMMATH=y +#ifndef CONFIG_INTERNAL_LIBTOMMATH +#LTM_PATH=/usr/src/libtommath-0.39 +#CFLAGS += -I$(LTM_PATH) +#LIBS += -L$(LTM_PATH) +#LIBS_p += -L$(LTM_PATH) +#endif +# At the cost of about 4 kB of additional binary size, the internal LibTomMath +# can be configured to include faster routines for exptmod, sqr, and div to +# speed up DH and RSA calculation considerably +#CONFIG_INTERNAL_LIBTOMMATH_FAST=y + +# Interworking (IEEE 802.11u) +# This can be used to enable functionality to improve interworking with +# external networks. +#CONFIG_INTERWORKING=y + +# Hotspot 2.0 +#CONFIG_HS20=y + +# Enable SQLite database support in hlr_auc_gw, EAP-SIM DB, and eap_user_file +CONFIG_SQLITE=y + +# Enable Fast Session Transfer (FST) +#CONFIG_FST=y + +# Enable CLI commands for FST testing +#CONFIG_FST_TEST=y + +# Testing options +# This can be used to enable some testing options (see also the example +# configuration file) that are really useful only for testing clients that +# connect to this hostapd. These options allow, for example, to drop a +# certain percentage of probe requests or auth/(re)assoc frames. +# +#CONFIG_TESTING_OPTIONS=y +# Automatic Channel Selection +# This will allow hostapd to pick the channel automatically when channel is set +# to "acs_survey" or "0". Eventually, other ACS algorithms can be added in +# similar way. +# +# Automatic selection is currently only done through initialization, later on +# we hope to do background checks to keep us moving to more ideal channels as +# time goes by. ACS is currently only supported through the nl80211 driver and +# your driver must have survey dump capability that is filled by the driver +# during scanning. +# +# You can customize the ACS survey algorithm with the hostapd.conf variable +# acs_num_scans. +# +# Supported ACS drivers: +# * ath9k +# * ath5k +# * ath10k +# +# For more details refer to: +# http://wireless.kernel.org/en/users/Documentation/acs +# CONFIG_ACS=y -CONFIG_IEEE80211AC=y +# Multiband Operation support +# These extentions facilitate efficient use of multiple frequency bands +# available to the AP and the devices that may associate with it. +#CONFIG_MBO=y -CONFIG_OPENVSWITCH=y +# Client Taxonomy +# Has the AP retain the Probe Request and (Re)Association Request frames from +# a client, from which a signature can be produced which can identify the model +# of client device like "Nexus 6P" or "iPhone 5s". +#CONFIG_TAXONOMY=y -CONFIG_IEEE80211R=y +# Fast Initial Link Setup (FILS) (IEEE 802.11ai) +#CONFIG_FILS=y +# FILS shared key authentication with PFS +#CONFIG_FILS_SK_PFS=y -CONFIG_WPS=y +# Include internal line edit mode in hostapd_cli. This can be used to provide +# limited command line editing and history support. +#CONFIG_WPA_CLI_EDIT=y -CONFIG_WPS2=y +# Opportunistic Wireless Encryption (OWE) +# Experimental implementation of draft-harkins-owe-07.txt +#CONFIG_OWE=y -CONFIG_WPS_UPNP=y +# Airtime policy support +#CONFIG_AIRTIME_POLICY=y + +# Override default value for the wpa_disable_eapol_key_retries configuration +# parameter. See that parameter in hostapd.conf for more details. +#CFLAGS += -DDEFAULT_WPA_DISABLE_EAPOL_KEY_RETRIES=1 + +# custom configuration options +CONFIG_MESH=y +CONFIG_SAE=y +CONFIG_WPS2=y diff --git a/hostapd-noscan.patch b/hostapd-noscan.patch deleted file mode 100644 index 8dd48fb1db3f..000000000000 --- a/hostapd-noscan.patch +++ /dev/null @@ -1,76 +0,0 @@ -diff -wbBur hostapd-2.8/hostapd/config_file.c hostapd-2.8.q/hostapd/config_file.c ---- hostapd-2.8/hostapd/config_file.c 2019-04-21 10:10:22.000000000 +0300 -+++ hostapd-2.8.q/hostapd/config_file.c 2019-04-25 14:59:57.594749041 +0300 -@@ -2858,6 +2858,8 @@ - bss->wpa_gmk_rekey = atoi(pos); - } else if (os_strcmp(buf, "wpa_ptk_rekey") == 0) { - bss->wpa_ptk_rekey = atoi(pos); -+ } else if (os_strcmp(buf, "noscan") == 0) { -+ conf->noscan = atoi(pos); - } else if (os_strcmp(buf, "wpa_group_update_count") == 0) { - char *endp; - unsigned long val = strtoul(pos, &endp, 0); -@@ -3390,6 +3392,8 @@ - bss->ieee80211w = 1; - #endif /* CONFIG_OCV */ - #ifdef CONFIG_IEEE80211N -+ } else if (os_strcmp(buf, "noscan") == 0) { -+ conf->noscan = atoi(pos); - } else if (os_strcmp(buf, "ieee80211n") == 0) { - conf->ieee80211n = atoi(pos); - } else if (os_strcmp(buf, "ht_capab") == 0) { -diff -wbBur hostapd-2.8/src/ap/ap_config.h hostapd-2.8.q/src/ap/ap_config.h ---- hostapd-2.8/src/ap/ap_config.h 2019-04-21 10:10:22.000000000 +0300 -+++ hostapd-2.8.q/src/ap/ap_config.h 2019-04-25 15:01:32.981414600 +0300 -@@ -801,6 +801,7 @@ - - int ht_op_mode_fixed; - u16 ht_capab; -+ int noscan; - int ieee80211n; - int secondary_channel; - int no_pri_sec_switch; -diff -wbBur hostapd-2.8/src/ap/hw_features.c hostapd-2.8.q/src/ap/hw_features.c ---- hostapd-2.8/src/ap/hw_features.c 2019-04-21 10:10:22.000000000 +0300 -+++ hostapd-2.8.q/src/ap/hw_features.c 2019-04-25 14:58:10.278083605 +0300 -@@ -477,7 +477,7 @@ - int ret; - - /* Check that HT40 is used and PRI / SEC switch is allowed */ -- if (!iface->conf->secondary_channel || iface->conf->no_pri_sec_switch) -+ if (!iface->conf->secondary_channel || iface->conf->no_pri_sec_switch || iface->conf->noscan) - return 0; - - hostapd_set_state(iface, HAPD_IFACE_HT_SCAN); -@@ -730,7 +730,7 @@ - if (!hostapd_is_usable_chan(iface, iface->conf->channel, 1)) - return 0; - -- if (!iface->conf->secondary_channel) -+ if (!iface->conf->secondary_channel || iface->conf->noscan) - return 1; - - if (!iface->conf->ht40_plus_minus_allowed) -diff -wbBur hostapd-2.8/src/ap/ieee802_11_ht.c hostapd-2.8.q/src/ap/ieee802_11_ht.c ---- hostapd-2.8/src/ap/ieee802_11_ht.c 2019-04-21 10:10:22.000000000 +0300 -+++ hostapd-2.8.q/src/ap/ieee802_11_ht.c 2019-04-25 14:58:10.278083605 +0300 -@@ -252,6 +252,9 @@ - return; - } - -+ if (iface->conf->noscan) -+ return; -+ - if (len < IEEE80211_HDRLEN + 2 + sizeof(*bc_ie)) { - wpa_printf(MSG_DEBUG, - "Ignore too short 20/40 BSS Coexistence Management frame"); -@@ -412,6 +415,9 @@ - if (iface->current_mode->mode != HOSTAPD_MODE_IEEE80211G) - return; - -+ if (iface->conf->noscan) -+ return; -+ - wpa_printf(MSG_INFO, "HT: Forty MHz Intolerant is set by STA " MACSTR - " in Association Request", MAC2STR(sta->addr)); - diff --git a/openvswitch.patch b/openvswitch.patch deleted file mode 100644 index 09120cfa3d9e..000000000000 --- a/openvswitch.patch +++ /dev/null @@ -1,137 +0,0 @@ -diff -wbBur hostapd-2.8.q/src/drivers/drivers.mak hostapd-2.8/src/drivers/drivers.mak ---- hostapd-2.8.q/src/drivers/drivers.mak 2019-04-21 10:10:22.000000000 +0300 -+++ hostapd-2.8/src/drivers/drivers.mak 2019-04-25 15:05:36.981411804 +0300 -@@ -136,6 +136,10 @@ - NEED_RFKILL=y - endif - -+ifdef CONFIG_OPENVSWITCH -+DRV_CFLAGS += -DCONFIG_OPENVSWITCH -+endif -+ - ifdef NEED_NETLINK - DRV_OBJS += ../src/drivers/netlink.o - endif -diff -wbBur hostapd-2.8.q/src/drivers/drivers.mk hostapd-2.8/src/drivers/drivers.mk ---- hostapd-2.8.q/src/drivers/drivers.mk 2019-04-21 10:10:22.000000000 +0300 -+++ hostapd-2.8/src/drivers/drivers.mk 2019-04-25 15:05:36.981411804 +0300 -@@ -128,6 +128,10 @@ - NEED_RFKILL=y - endif - -+ifdef CONFIG_OPENVSWITCH -+DRV_CFLAGS += -DCONFIG_OPENVSWITCH -+endif -+ - ifdef NEED_NETLINK - DRV_OBJS += src/drivers/netlink.c - endif -diff -wbBur hostapd-2.8.q/src/drivers/linux_ioctl.c hostapd-2.8/src/drivers/linux_ioctl.c ---- hostapd-2.8.q/src/drivers/linux_ioctl.c 2019-04-21 10:10:22.000000000 +0300 -+++ hostapd-2.8/src/drivers/linux_ioctl.c 2019-04-25 15:05:36.981411804 +0300 -@@ -15,6 +15,69 @@ - #include "common/linux_bridge.h" - #include "linux_ioctl.h" - -+#ifdef CONFIG_OPENVSWITCH -+#include <sys/wait.h> -+#include <sys/stat.h> -+ -+#define run_prog(p, ...) ({ \ -+ struct stat q; \ -+ int rc = -1, status; \ -+ if(stat(p, &q) == 0) \ -+ { \ -+ pid_t pid = fork(); \ -+ if (!pid) \ -+ exit(execl(p, p, ##__VA_ARGS__, NULL)); \ -+ if (pid < 0) { \ -+ rc = -1; \ -+ } else { \ -+ while ((rc = waitpid(pid, &status, 0)) == -1 && errno == EINTR); \ -+ rc = (rc == pid && WIFEXITED(status)) ? WEXITSTATUS(status) : -1; \ -+ } \ -+ } \ -+ rc; \ -+}) -+ -+int ovs_br_get(char *brname, const char *ifname) -+{ -+ FILE *f; -+ char cmd[64]; -+ char *c; -+ struct stat q; -+ -+ if(stat("/usr/bin/ovs-vsctl", &q) != 0) -+ return -1; -+ -+ brname[0] = '\0'; -+ sprintf(cmd, "/usr/bin/ovs-vsctl iface-to-br %s", ifname); -+ f = popen(cmd, "r"); -+ if (!f) -+ return -1; -+ c = fgets(brname, IFNAMSIZ, f); -+ pclose(f); -+ if (c && strlen(brname)) { -+ /* Ignore newline */ -+ if ((c = strchr(brname, '\n'))) -+ *c = '\0'; -+ return 0; -+ } -+ return -1; -+} -+ -+int ovs_br_add_if(const char *brname, const char *ifname) -+{ -+ if (run_prog("/usr/bin/ovs-vsctl", "add-port", brname, ifname)) -+ return -1; -+ return 0; -+} -+ -+int ovs_br_del_if(const char *brname, const char *ifname) -+{ -+ if (run_prog("/usr/bin/ovs-vsctl", "del-port", brname, ifname)) -+ return -1; -+ return 0; -+} -+ -+#endif - - int linux_set_iface_flags(int sock, const char *ifname, int dev_up) - { -@@ -152,6 +215,11 @@ - struct ifreq ifr; - int ifindex; - -+#ifdef CONFIG_OPENVSWITCH -+ if (!ovs_br_add_if(brname, ifname)) -+ return 0; -+#endif -+ - ifindex = if_nametoindex(ifname); - if (ifindex == 0) - return -1; -@@ -177,6 +245,11 @@ - struct ifreq ifr; - int ifindex; - -+#ifdef CONFIG_OPENVSWITCH -+ if (!ovs_br_del_if(brname, ifname)) -+ return 0; -+#endif -+ - ifindex = if_nametoindex(ifname); - if (ifindex == 0) - return -1; -@@ -199,6 +272,11 @@ - char path[128], brlink[128], *pos; - ssize_t res; - -+#ifdef CONFIG_OPENVSWITCH -+ if (!ovs_br_get(brname, ifname)) -+ return 0; -+#endif -+ - os_snprintf(path, sizeof(path), "/sys/class/net/%s/brport/bridge", - ifname); - res = readlink(path, brlink, sizeof(brlink)); |