From 5bcee7d7e0b7696697da8ef34240a6ba9efde643 Mon Sep 17 00:00:00 2001 From: Jianhui Zhao Date: Fri, 9 Mar 2018 13:15:35 +0800 Subject: [PATCH] wifidog-ng: Add package Next generation WifiDog Signed-off-by: Jianhui Zhao --- libs/libuhttpd/Makefile | 82 ++++++++++++++++++++ net/wifidog-ng/Makefile | 103 +++++++++++++++++++++++++ net/wifidog-ng/files/wifidog-ng.config | 21 +++++ net/wifidog-ng/files/wifidog-ng.crt | 24 ++++++ net/wifidog-ng/files/wifidog-ng.init | 19 +++++ net/wifidog-ng/files/wifidog-ng.key | 28 +++++++ 6 files changed, 277 insertions(+) create mode 100755 libs/libuhttpd/Makefile create mode 100755 net/wifidog-ng/Makefile create mode 100755 net/wifidog-ng/files/wifidog-ng.config create mode 100755 net/wifidog-ng/files/wifidog-ng.crt create mode 100755 net/wifidog-ng/files/wifidog-ng.init create mode 100755 net/wifidog-ng/files/wifidog-ng.key diff --git a/libs/libuhttpd/Makefile b/libs/libuhttpd/Makefile new file mode 100755 index 0000000000..28685ae556 --- /dev/null +++ b/libs/libuhttpd/Makefile @@ -0,0 +1,82 @@ +# +# Copyright (C) 2014-2017 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=libuhttpd +PKG_VERSION:=2.0.0 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_VERSION:=v$(PKG_VERSION) +PKG_SOURCE_URL=https://github.com/zhaojh329/libuhttpd.git +PKG_MIRROR_HASH:=6101b348ba743eebcfd9e6561df94809e72298c8639ed296c3fb4e6837ed20ba +CMAKE_INSTALL:=1 + +PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR) + +PKG_LICENSE:=LGPL-2.1 +PKG_LICENSE_FILES:=LICENSE + +PKG_MAINTAINER:=Jianhui Zhao + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/libuhttpd/default + SECTION:=libs + CATEGORY:=Libraries + SUBMENU:=Networking + TITLE:=libuhttpd + DEPENDS:=+libubox +liblua +endef + +define Package/libuhttpd-nossl + $(Package/libuhttpd/default) + TITLE += (NO SSL) + VARIANT:=nossl +endef + +define Package/libuhttpd-openssl + $(Package/libuhttpd/default) + TITLE += (openssl) + DEPENDS += +libustream-openssl + VARIANT:=openssl +endef + +define Package/libuhttpd-wolfssl + $(Package/libuhttpd/default) + TITLE += (wolfssl) + DEPENDS += +libustream-wolfssl + VARIANT:=wolfssl +endef + +define Package/libuhttpd-mbedtls + $(Package/libuhttpd/default) + TITLE += (mbedtls) + DEPENDS += +libustream-mbedtls + VARIANT:=mbedtls +endef + +ifeq ($(BUILD_VARIANT),nossl) + CMAKE_OPTIONS += -DUHTTPD_SSL_SUPPORT=off +endif + +define Package/libuhttpd/default/install + $(INSTALL_DIR) $(1)/usr/lib/ + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libuhttpd.so* $(1)/usr/lib/ +endef + +Package/libuhttpd-nossl/install = $(Package/libuhttpd/default/install) +Package/libuhttpd-openssl/install = $(Package/libuhttpd/default/install) +Package/libuhttpd-wolfssl/install = $(Package/libuhttpd/default/install) +Package/libuhttpd-mbedtls/install = $(Package/libuhttpd/default/install) + +$(eval $(call BuildPackage,libuhttpd-nossl)) +$(eval $(call BuildPackage,libuhttpd-mbedtls)) +$(eval $(call BuildPackage,libuhttpd-wolfssl)) +$(eval $(call BuildPackage,libuhttpd-openssl)) diff --git a/net/wifidog-ng/Makefile b/net/wifidog-ng/Makefile new file mode 100755 index 0000000000..e06e1f4497 --- /dev/null +++ b/net/wifidog-ng/Makefile @@ -0,0 +1,103 @@ +# +# Copyright (C) 2014-2017 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=wifidog-ng +PKG_VERSION:=1.0.1 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_VERSION:=v$(PKG_VERSION) +PKG_SOURCE_URL=https://github.com/zhaojh329/wifidog-ng.git +PKG_MIRROR_HASH:=f6ff1e91f37a101df157655e0aa5628966b3e27c49294125a7dab6755fb4bf97 + +PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR) + +PKG_LICENSE:=LGPL-2.1 +PKG_LICENSE_FILES:=LICENSE + +PKG_MAINTAINER:=Jianhui Zhao + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/cmake.mk + +define Package/wifidog-ng/default + SUBMENU:=Captive Portals + SECTION:=net + CATEGORY:=Network + TITLE:=Next generation WifiDog + DEPENDS:=+kmod-wifidog-ng +libuci +libuclient +libblobmsg-json +libubus +libcares +endef + +define Package/wifidog-ng-nossl + $(Package/wifidog-ng/default) + TITLE += (NO SSL) + DEPENDS += +libuhttpd-nossl + VARIANT:=nossl + CONFLICTS:=wifidog-ng-openssl wifidog-ng-wolfssl wifidog-ng-mbedtls +endef + +define Package/wifidog-ng-openssl + $(Package/wifidog-ng/default) + TITLE += (openssl) + DEPENDS += +libuhttpd-openssl + VARIANT:=openssl + CONFLICTS:=wifidog-ng-wolfssl wifidog-ng-mbedtls +endef + +define Package/wifidog-ng-wolfssl + $(Package/wifidog-ng/default) + TITLE += (wolfssl) + DEPENDS += +libuhttpd-wolfssl + VARIANT:=wolfssl + CONFLICTS:=wifidog-ng-mbedtls +endef + +define Package/wifidog-ng-mbedtls + $(Package/wifidog-ng/default) + TITLE += (mbedtls) + DEPENDS += +libuhttpd-mbedtls + VARIANT:=mbedtls +endef + +define Package/wifidog-ng/default/install + $(INSTALL_DIR) $(1)/usr/bin $(1)/etc/init.d $(1)/etc/config $(1)/etc/wifidog-ng + $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/wifidog-ng $(1)/usr/bin + $(INSTALL_BIN) ./files/wifidog-ng.init $(1)/etc/init.d/wifidog-ng + $(INSTALL_CONF) ./files/wifidog-ng.config $(1)/etc/config/wifidog-ng + $(INSTALL_CONF) ./files/wifidog-ng.key $(1)/etc/wifidog-ng + $(INSTALL_CONF) ./files/wifidog-ng.crt $(1)/etc/wifidog-ng +endef + +Package/wifidog-ng-nossl/install = $(Package/wifidog-ng/default/install) +Package/wifidog-ng-openssl/install = $(Package/wifidog-ng/default/install) +Package/wifidog-ng-wolfssl/install = $(Package/wifidog-ng/default/install) +Package/wifidog-ng-mbedtls/install = $(Package/wifidog-ng/default/install) + +include $(INCLUDE_DIR)/kernel.mk + +define KernelPackage/wifidog-ng + SUBMENU:=Other modules + TITLE:=Kernel module for wifidog-ng + DEPENDS:=+kmod-nf-nat + FILES:=$(PKG_BUILD_DIR)/kmod/wifidog-ng.ko +endef + +include $(INCLUDE_DIR)/kernel-defaults.mk + +define Build/Compile + $(call Build/Compile/Default) + $(MAKE) $(KERNEL_MAKEOPTS) SUBDIRS="$(PKG_BUILD_DIR)"/kmod modules +endef + +$(eval $(call BuildPackage,wifidog-ng-nossl)) +$(eval $(call BuildPackage,wifidog-ng-mbedtls)) +$(eval $(call BuildPackage,wifidog-ng-wolfssl)) +$(eval $(call BuildPackage,wifidog-ng-openssl)) + +$(eval $(call KernelPackage,wifidog-ng)) diff --git a/net/wifidog-ng/files/wifidog-ng.config b/net/wifidog-ng/files/wifidog-ng.config new file mode 100755 index 0000000000..5efd8d62ca --- /dev/null +++ b/net/wifidog-ng/files/wifidog-ng.config @@ -0,0 +1,21 @@ +config gateway + option enabled 1 + option ifname 'br-lan' + option port 2060 + option ssl_port 8443 + option checkinterval 30 + option temppass_time 30 + +config authserver + option host 'authserver.com' + option port 80 + option path '/wifidog/' + option login_path 'login' + option portal_path 'portal' + option msg_path 'gw_message.php' + option ping_path 'ping' + option auth_path 'auth' + +config popularserver + list server www.baidu.com + list server www.qq.com diff --git a/net/wifidog-ng/files/wifidog-ng.crt b/net/wifidog-ng/files/wifidog-ng.crt new file mode 100755 index 0000000000..9fb965bf22 --- /dev/null +++ b/net/wifidog-ng/files/wifidog-ng.crt @@ -0,0 +1,24 @@ +-----BEGIN CERTIFICATE----- +MIID8TCCAtmgAwIBAgICCCUwDQYJKoZIhvcNAQELBQAwczELMAkGA1UEBhMCQ04x +EDAOBgNVBAgMB1RpYW5qaW4xEDAOBgNVBAcMB1RpYW5qaW4xFTATBgNVBAoMDENI +SU5BU1NMIEluYzEpMCcGA1UEAwwgQ0hJTkFTU0wgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwHhcNMTgwMzAzMTQyODQ2WhcNMTkwMzAzMTQyODQ2WjCBgzELMAkGA1UE +BhMCQ04xEDAOBgNVBAgMB3NpY2h1YW4xEjAQBgNVBAoMCXpoYW9qaDMyOTETMBEG +A1UECwwKd2lmaWRvZy1uZzEQMA4GA1UEAwwHd2lmaWRvZzEnMCUGCSqGSIb3DQEJ +ARYYamlhbmh1aXpoYW8zMjlAZ21haWwuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAyD8gd3XIJvkYeySP2q0toYsfvhlA+lceUPiMi16U1nR3TD5U +uTNGsvYBDMiR7vG0NKClFT73u/d8HBcYcTBgbhHfBkz4v9S5aMdUYQsUMQEITBdE +hPEeXVqqj796Lu6iEkNUFrtam2h3t+kYODjbszk2woBtohaRWfNyOB/AJH6Stv4l +jkPYwt9NHcKQSm9kjcGsAqQwkgVd4UfHX2G20gaTijimeHlJL2wv61uLBUvYux0E ++98KIcEIYu3BVAfoO2Omg/o73cwH+sFTswEXPuXirwrOzmJ850WBLScLkSKSATrY +1YdU6CRaJuP/POFfSqAhn/mPRNQFU5fAaDcfEwIDAQABo34wfDAJBgNVHRMEAjAA +MC8GCWCGSAGG+EIBDQQiFiBDSElOQVNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTAdBgNVHQ4EFgQU9XS4dW6j1r1lEOIHWkoJx3zSqqgwHwYDVR0jBBgwFoAUXB8j ++sjhITHC2Df2iPzSb8JUQzMwDQYJKoZIhvcNAQELBQADggEBAFsaq5qehwp0zMqY +cb0IX5/f4ZnscX587SM/NhORODa0p/bT3EwG3grtljHhRW+s/4c4gPgilrzV0Fxn +Y5FodLfFdbNVjhgeSrDCRmwIvKSe81LYOe+rbfTBF0g3YYWDwcwc8tFvcwWBxqWn +4F+u9aIKgHU7HXQokqCxEOTFjrAHVJf1OqtRMTXlBBb6ypVdHn0glfSxOIC/Vp2T +5UR7oVdD4E8ASqe7Q7MmTeY377CRagfd0WD9XK7o+cbKkLLW1QWc8ht1rHjGp+/2 +gmkxEmpX2Xhpv1FX/b6sj1dTmOc2bXBzpvV6yonRMu5dYsOrdDwbH/T05X+hCFW9 +G86ZLFY= +-----END CERTIFICATE----- diff --git a/net/wifidog-ng/files/wifidog-ng.init b/net/wifidog-ng/files/wifidog-ng.init new file mode 100755 index 0000000000..47108f13a3 --- /dev/null +++ b/net/wifidog-ng/files/wifidog-ng.init @@ -0,0 +1,19 @@ +#!/bin/sh /etc/rc.common + +USE_PROCD=1 +START=95 + +BIN=/usr/bin/wifidog-ng + +start_service() { + modprobe wifidog-ng + + procd_open_instance + procd_set_param command $BIN + procd_set_param respawn + procd_close_instance +} + +stop_service() { + rmmod wifidog-ng +} diff --git a/net/wifidog-ng/files/wifidog-ng.key b/net/wifidog-ng/files/wifidog-ng.key new file mode 100755 index 0000000000..6f56d7433d --- /dev/null +++ b/net/wifidog-ng/files/wifidog-ng.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIPyB3dcgm+Rh7 +JI/arS2hix++GUD6Vx5Q+IyLXpTWdHdMPlS5M0ay9gEMyJHu8bQ0oKUVPve793wc +FxhxMGBuEd8GTPi/1Llox1RhCxQxAQhMF0SE8R5dWqqPv3ou7qISQ1QWu1qbaHe3 +6Rg4ONuzOTbCgG2iFpFZ83I4H8AkfpK2/iWOQ9jC300dwpBKb2SNwawCpDCSBV3h +R8dfYbbSBpOKOKZ4eUkvbC/rW4sFS9i7HQT73wohwQhi7cFUB+g7Y6aD+jvdzAf6 +wVOzARc+5eKvCs7OYnznRYEtJwuRIpIBOtjVh1ToJFom4/884V9KoCGf+Y9E1AVT +l8BoNx8TAgMBAAECggEAK/JmvrDzt1HtxIDWrWhaXly5H7BNKWPbPGv/9EpSoeo3 +kF0RnP+a4YXJ3zNZi7YyFWa4NDx4hCEhdMzAyX6TezSi3LAh23/lHRC5/P5AdSzD +1Gc6225LerN+QUQFna0zlox+NOrzTK4VsCAQ963K0b+ZvAARj4QibDpYc+bL9XYK +fVrZSnGJhNY3S6YjTF4oyMejKxk+HPhgCVEcZCHiC0RmXVqfETe6Cu0UtDPTTK5Q +IXYYZ0HLsqaGWwGCWm/ji6HjNCG1dUhUp/yZR+7X45Utok3Rd3wo0kxZGJ7LHH4N +541qcFbaT3rX39uPypuK5dSc5lb98FAOl79jL/wnUQKBgQDjEycf6VKZYf8d/MMV +4+0YrFV7sdi0k4TC+lFmfJZVFHqcPn99q3cO2b9npgLDpQpwpcyBGMh6hWufVXXA +ctrxg8vjKBHG8MT70Lulvi+G3Fldw7EHVVQGEHRqPaSzA035JyVanDs6lgoqjj9b +BuMQidIeaj2t28pEhc0rYstW6wKBgQDhwRzoCirKrtJDWclDkjbzkGUfoAKMz2p2 +mSAs2xCdrx8vtFzUXcCLsvlXa+hIEe4O5cUZg+WLPfXiV4gtF74PTkmYADXRTUBl +dHzfjVWQINEYFsWOEP5eYB0VWiA52JUaCuHuHILt6CSy3h8xPtnq+/oEFTeqh/2C +XoN+seKeeQKBgQDUE1c/HpLeXf/+6crp7u3JVWqhFADo5b3gvBi6NzHQVEgPFO/N +Vw7i98sj6pA6WTHe83qEN7lFdMaHETHgg2SonAcYKJwxyTywUspuiampsrJkOBhm +WPMYltWjQ99GsZdpU343miJXHTpxdFkHku8OyylK7r6cWeIXDUAJfUOb8QKBgFbk +ZoTljOzwdxvXTkFE4QPEmzed9f1OxHKbo6fANdgLlJxe9rAC2d6rZ49/iCtdQ1zW +kZOtkceTdLXG7TI2BkCL6IWp5w0Fh/jE6l99XeaYywJTmXyCC/Y1VlxmkSrSsykP +8UAeF0MM7DswhZ8FywjILcYuiHuJ1ki8qi40t745AoGAT/5imiro59cHMbbGEQb+ +42oBY7RxeHkk6+8WTJA6kqv8tuOK3gvDFm5cRJVCduVF/Jf+276IMoTMEb8kBGQA +R3CRsYwLPrpdWu2q9Ho1KtH+azt/d+3uglT9g3fhvFieNIwkRgaNNJQC6wmddDeG +MEYv4HO1LykipsDVsFadVCk= +-----END PRIVATE KEY-----