forked from coolsnowwolf/lede
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d27dad8
commit 73db9ba
Showing
11 changed files
with
1,078 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
include $(TOPDIR)/rules.mk | ||
|
||
PKG_NAME:=luci-app-dogcom | ||
PKG_VERSION:=1.0.2 | ||
PKG_RELEASE:=1 | ||
|
||
PKG_MAINTAINER:=fuyumi <280604399@qq.com> | ||
PKG_LICENSE:=AGPLv3 | ||
PKG_LICENSE_FILES:=LICENSE | ||
|
||
PKG_SOURCE_SUBDIR:=$(PKG_NAME) | ||
PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz | ||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR) | ||
PKG_BUILD_PARALLEL:=1 | ||
|
||
include $(INCLUDE_DIR)/package.mk | ||
|
||
define Package/luci-app-dogcom | ||
SECTION:=luci | ||
CATEGORY:=LuCI | ||
SUBMENU:=3. Applications | ||
TITLE:=LuCI app for openwrt-dogcom | ||
DEPENDS:=+dogcom | ||
PKGARCH:=all | ||
MAINTAINER:=fuyumi | ||
endef | ||
|
||
define Package/luci-app-dogcom/description | ||
This package contains LuCI configuration pages for openwrt-dogcom. | ||
endef | ||
|
||
define Build/Prepare | ||
endef | ||
|
||
define Build/Configure | ||
endef | ||
|
||
define Build/Compile | ||
endef | ||
|
||
define Package/luci-app-dogcom/postinst | ||
#!/bin/sh | ||
if [ -z "$${IPKG_INSTROOT}" ]; then | ||
( . /etc/uci-defaults/luci-app-dogcom ) && rm -f /etc/uci-defaults/luci-app-dogcom | ||
rm -f /tmp/luci-indexcache | ||
fi | ||
exit 0 | ||
endef | ||
|
||
define Package/luci-app-dogcom/install | ||
$(INSTALL_DIR) $(1)/etc/uci-defaults | ||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller | ||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi | ||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/dogcom | ||
$(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n | ||
$(INSTALL_DIR) $(1)/etc/config | ||
$(INSTALL_DIR) $(1)/etc/init.d | ||
|
||
$(INSTALL_BIN) ./files/root/etc/uci-defaults/40_luci-dogcom $(1)/etc/uci-defaults/luci-app-dogcom | ||
$(INSTALL_DATA) ./files/luci/controller/dogcom.lua $(1)/usr/lib/lua/luci/controller/dogcom.lua | ||
$(INSTALL_DATA) ./files/luci/model/cbi/dogcom.lua $(1)/usr/lib/lua/luci/model/cbi/dogcom.lua | ||
$(INSTALL_DATA) ./files/luci/view/dogcom/auto_configure.htm $(1)/usr/lib/lua/luci/view/dogcom/auto_configure.htm | ||
$(INSTALL_DATA) ./files/luci/i18n/dogcom_zh-cn.lmo $(1)/usr/lib/lua/luci/i18n/dogcom.zh-cn.lmo | ||
$(INSTALL_CONF) ./files/root/etc/config/dogcom $(1)/etc/config/dogcom | ||
$(INSTALL_BIN) ./files/root/etc/init.d/dogcom $(1)/etc/init.d/dogcom | ||
endef | ||
|
||
$(eval $(call BuildPackage,luci-app-dogcom)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# luci-app-dogcom | ||
LuCI app for [openwrt-dogcom](https://github.com/mchome/openwrt-dogcom "") |
14 changes: 14 additions & 0 deletions
14
package/lean/luci-app-dogcom/files/luci/controller/dogcom.lua
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
-- Copyright (C) 2017 fuyumi <280604399@qq.com> | ||
-- Licensed to the public under the GNU Affero General Public License v3. | ||
|
||
module("luci.controller.dogcom", package.seeall) | ||
|
||
function index() | ||
if not nixio.fs.access("/etc/config/dogcom") then | ||
return | ||
end | ||
local page | ||
page = entry({"admin", "network", "dogcom"}, cbi("dogcom"), _("dogcom"), 100) | ||
page.i18n = "dogcom" | ||
page.dependent = true | ||
end |
Binary file not shown.
46 changes: 46 additions & 0 deletions
46
package/lean/luci-app-dogcom/files/luci/i18n/dogcom_zh-cn.po
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
msgid "" | ||
msgstr "" | ||
"Language: zh_CN\n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: 8bit\n" | ||
"Plural-Forms: nplurals=1; plural=0;\n" | ||
|
||
msgid "Dogcom config" | ||
msgstr "Dogcom 设置" | ||
|
||
msgid "Dogcom is running." | ||
msgstr "Dogcom 运行中。" | ||
|
||
msgid "Dogcom is not running." | ||
msgstr "Dogcom 未运行。" | ||
|
||
msgid "Basic Settings" | ||
msgstr "基本设置" | ||
|
||
msgid "Enable" | ||
msgstr "启用" | ||
|
||
msgid "Version" | ||
msgstr "版本" | ||
|
||
msgid "dhcp" | ||
msgstr "dhcp(D版)" | ||
|
||
msgid "pppoe" | ||
msgstr "pppoe(P版)" | ||
|
||
msgid "Patch the escape problem" | ||
msgstr "P版转义字符补丁" | ||
|
||
msgid "configfile" | ||
msgstr "配置文件" | ||
|
||
msgid "This file is /etc/dogcom.conf." | ||
msgstr "这个文件是/etc/dogcom.conf。" | ||
|
||
msgid "Generate Configuration" | ||
msgstr "生成配置" | ||
|
||
msgid "Please upload your packet file. Then change password and copy to basic settings." | ||
msgstr "请上传你的数据包,然后修改密码并复制到基本设置配置文件中。" |
72 changes: 72 additions & 0 deletions
72
package/lean/luci-app-dogcom/files/luci/model/cbi/dogcom.lua
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
-- Copyright (C) 2017 fuyumi <280604399@qq.com> | ||
-- Licensed to the public under the GNU Affero General Public License v3. | ||
|
||
local m, s | ||
|
||
local running = (luci.sys.call("pidof dogcom > /dev/null") == 0) | ||
if running then | ||
m = Map("dogcom", translate("Dogcom config"), translate("Dogcom is running.")) | ||
else | ||
m = Map("dogcom", translate("Dogcom config"), translate("Dogcom is not running.")) | ||
end | ||
|
||
s = m:section(TypedSection, "dogcom", "") | ||
s.addremove = false | ||
s.anonymous = true | ||
|
||
-- Basic Settings -- | ||
s:tab("basic", translate("Basic Settings")) | ||
|
||
enable = s:taboption("basic", Flag, "enabled", translate("Enable")) | ||
enable.rmempty = false | ||
function enable.cfgvalue(self, section) | ||
return luci.sys.init.enabled("dogcom") and self.enabled or self.disabled | ||
end | ||
|
||
version = s:taboption("basic", ListValue, "version", translate("Version")) | ||
version:value("dhcp", translate("dhcp")) | ||
version:value("pppoe", translate("pppoe")) | ||
version.value = "dhcp" | ||
|
||
escpatch = s:taboption("basic", Button, "esc", translate("Patch the escape problem")) | ||
function escpatch.write() | ||
luci.sys.call("sed -i '/proto_run_command/i username=`echo -e \"$username\"`' /lib/netifd/proto/ppp.sh") | ||
luci.sys.call("sed -i '/proto_run_command/i password=`echo -e \"$password\"`' /lib/netifd/proto/ppp.sh") | ||
end | ||
|
||
config = s:taboption("basic", Value, "config", translate("configfile"), translate("This file is /etc/dogcom.conf."), "") | ||
config.template = "cbi/tvalue" | ||
config.rows = 15 | ||
config.wrap = "off" | ||
|
||
function config.cfgvalue(self, section) | ||
return nixio.fs.readfile("/etc/dogcom.conf") | ||
end | ||
|
||
function config.write(self, section, value) | ||
value = value:gsub("\r\n?", "\n") | ||
nixio.fs.writefile("/etc/dogcom.conf", value) | ||
end | ||
|
||
-- Generate Configuration -- | ||
s:tab("generator", translate("Generate Configuration")) | ||
|
||
msg = s:taboption("generator", DummyValue, "", translate(""), | ||
translate("Please upload your packet file. Then change password and copy to basic settings.")) | ||
|
||
autoconfig = s:taboption("generator", DummyValue, "autoconfig") | ||
autoconfig.template = "dogcom/auto_configure" | ||
|
||
-- Save Configuration -- | ||
function enable.write(self, section, value) | ||
if value == "1" then | ||
luci.sys.call("/etc/init.d/dogcom enable >/dev/null") | ||
luci.sys.call("/etc/init.d/dogcom start >/dev/null") | ||
else | ||
luci.sys.call("/etc/init.d/dogcom stop >/dev/null") | ||
luci.sys.call("/etc/init.d/dogcom disable >/dev/null") | ||
end | ||
Flag.write(self, section, value) | ||
end | ||
|
||
return m |
167 changes: 167 additions & 0 deletions
167
package/lean/luci-app-dogcom/files/luci/view/dogcom/auto_configure.htm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,167 @@ | ||
<%# | ||
Copyright (C) 2017 fuyumi <280604399@qq.com> | ||
Licensed to the public under the GNU Affero General Public License v3. | ||
%> | ||
|
||
<%+cbi/valueheader%> | ||
<style> | ||
.generator textarea { | ||
display: block; | ||
width: auto; | ||
font-family: Arial; | ||
} | ||
.lb { | ||
display: inline-block; | ||
background-color: #ddd; | ||
padding: 4px 11px; | ||
font-size: 16px; | ||
font-family: Arial; | ||
} | ||
.generator input { | ||
display: inline-block; | ||
visibility: hidden; | ||
width: 0 !important; | ||
margin: 1rem; | ||
} | ||
</style> | ||
|
||
<div class="generator"> | ||
<input class="file-upload" type="file" id="file-upload-d" accept=".pcapng"><label class="lb" for="file-upload-d">Version D</label> | ||
<input class="file-upload" type="file" id="file-upload-p" accept=".pcapng"><label class="lb" for="file-upload-p">Version P</label> | ||
<textarea id="display" rows="15" style="min-width: 300px;"> | ||
</textarea> | ||
</div> | ||
|
||
<script type="text/javascript"> | ||
var params; | ||
|
||
window.onload = function () { | ||
var el = document.querySelectorAll(".file-upload"); | ||
for (var i = 0, len = el.length; i < len; i++) { | ||
el[i].addEventListener('click', function () { | ||
fileupload(function (file, method) { | ||
if (file) { | ||
var reader = new FileReader(); | ||
reader.onload = function (e) { | ||
var data = e.target.result; | ||
if (method === 'd') { | ||
params = re_d(data); | ||
display(); | ||
} else if (method === 'p') { | ||
params = re_p(data); | ||
display(); | ||
}; | ||
} | ||
reader.readAsArrayBuffer(file); | ||
} | ||
}, '.pcapng', this); | ||
}) | ||
} | ||
}; | ||
|
||
function fileupload (callback, accept, fileSelector) { | ||
var method = fileSelector.getAttribute('id').slice(-1); | ||
fileSelector.addEventListener('change', function () { | ||
var files = fileSelector.files; | ||
if (files.length) { | ||
callback(files[0], method); | ||
} else { | ||
callback(null, null); | ||
} | ||
}); | ||
} | ||
|
||
function display() { | ||
var print = ''; | ||
for (var i = 0; i < params[0].length; i++) { | ||
if (params[0][i] == 'mac' || params[0][i] == 'ror_version'){ | ||
print += (params[0][i] + ' = ' + params[1][i] + '\'\n'); | ||
} else { | ||
print += (params[0][i] + ' = \'' + params[1][i] + '\'\n'); | ||
} | ||
}; | ||
print = print.slice(0, -1); | ||
document.querySelector("#display").value = print; | ||
} | ||
|
||
function hexEncode(array) { | ||
return array.map(function (byte) { | ||
return ('0' + (byte & 0xFF).toString(16)).slice(-2); | ||
}).join('') | ||
} | ||
|
||
String.prototype.hex2a = function () { | ||
var str = ''; | ||
for (var i = 0; i < this.length; i += 2) | ||
str += String.fromCharCode(parseInt(this.substr(i, 2), 16)); | ||
return str | ||
} | ||
|
||
String.prototype.hex2o = function () { | ||
var str = ''; | ||
for (var i = 0; i < this.length; i += 2) | ||
str += (parseInt(this.substr(i, 2), 16) + '.'); | ||
return str | ||
} | ||
|
||
function re_d (text) { | ||
var int8array = new Uint8Array(text); | ||
var textarray = Array.from(int8array); | ||
text = hexEncode(textarray); | ||
var re1 = /f000f000[00-ff]{8}0[37]01/; | ||
var r1 = text.match(re1); | ||
var offset = text.indexOf(r1) + 16; | ||
var re2 = /0000[00-ff]{4}/; | ||
var r2 = text.substring(offset + 668, offset + 676).match(re2); | ||
if (r2 !== null) { | ||
var ror_version = true; | ||
} else { | ||
var ror_version = false; | ||
} | ||
var username_len = (parseInt(text.substring(offset + 6, offset + 8), 16) - 20)*2; | ||
var username = text.substring(offset + 40, offset + 40 + username_len).hex2a(); | ||
var server = text.substring(offset - 24, offset -16).hex2o().slice(0, -1); | ||
var password = 'CHANGEME!!!'; | ||
var CONTROLCHECKSTATUS = '\\x' + text.substring(offset + 112, offset + 114); | ||
var ADAPTERNUM = '\\x' + text.substring(offset + 114, offset + 116); | ||
var host_ip = text.substring(offset + 162, offset + 170).hex2o().slice(0, -1); | ||
var IPDOG = '\\x' + text.substring(offset + 210, offset + 212); | ||
var host_name = 'fuyumi'; | ||
var PRIMARY_DNS = text.substring(offset + 284, offset + 292).hex2o().slice(0, -1); | ||
var dhcp_server = text.substring(offset + 292, offset + 300).hex2o().slice(0, -1); | ||
var AUTH_VERSION = '\\x' + text.substring(offset + 620, offset + 622) + '\\x' + text.substring(offset + 622, offset + 624); | ||
if (ror_version) { | ||
var mac = '0x' + text.substring(offset + 656, offset + 668); | ||
} else { | ||
var mac = '0x' + text.substring(offset + 640, offset + 652); | ||
} | ||
var host_os = 'Windows 10'; | ||
var re3 = /f000f000.{8}07..28000b01..../g; | ||
var r3 = text.match(re3); | ||
for (var i = r3.length - 1; i >= 0; i--) { | ||
if(r3[i].slice(-4)!='0f27') | ||
var KEEP_ALIVE_VERSION = r3[i].slice(-4).replace(/../ig, function (s) {return '\\x' + s}); | ||
}; | ||
var params1 = ['server','username','password','CONTROLCHECKSTATUS','ADAPTERNUM','host_ip','IPDOG','host_name','PRIMARY_DNS','dhcp_server','AUTH_VERSION','mac','host_os','KEEP_ALIVE_VERSION', 'ror_version'] | ||
var params2 = [server,username,password,CONTROLCHECKSTATUS,ADAPTERNUM,host_ip,IPDOG,host_name,PRIMARY_DNS,dhcp_server,AUTH_VERSION,mac,host_os,KEEP_ALIVE_VERSION, String(ror_version).charAt(0).toUpperCase() + String(ror_version).slice(1)] | ||
return [params1, params2] | ||
} | ||
|
||
function re_p (text) { | ||
var int8array = new Uint8Array(text); | ||
var textarray = Array.from(int8array); | ||
text = hexEncode(textarray); | ||
var re1 = /07[00-ff]{2}60000300/; | ||
var r1 = text.match(re1); | ||
var offset = text.indexOf(r1); | ||
var server = text.substring(offset - 24, offset -16).hex2o().slice(0, -1); | ||
var pppoe_flag = '\\x' + text.substring(offset + 38, offset + 40); | ||
var re2 = /07.{2}28000b..(..)02/; | ||
var keep_alive2_flag = '\\x' + text.match(re2)[1]; | ||
var params1 = ['server','pppoe_flag','keep_alive2_flag']; | ||
var params2 = [server,pppoe_flag,keep_alive2_flag] | ||
return [params1,params2] | ||
} | ||
</script> | ||
|
||
<%+cbi/valuefooter%> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
config dogcom 'config' | ||
option enabled '0' | ||
option version 'dhcp' |
Oops, something went wrong.