From d3d6c4abe7cce87f3f262b1f309978ff0fa06d97 Mon Sep 17 00:00:00 2001 From: LEAN-ESX Date: Fri, 31 May 2019 05:15:59 -0700 Subject: [PATCH] luci-app-familycloud: add CT Family Cloud Speeder package --- package/lean/luci-app-familycloud/Makefile | 18 +++++++ .../luasrc/controller/familycloud.lua | 23 +++++++++ .../luasrc/model/cbi/familycloud.lua | 22 +++++++++ .../luasrc/model/cbi/familycloudlog.lua | 14 ++++++ .../view/familycloud/familycloud_status.htm | 22 +++++++++ .../root/etc/config/familycloud | 6 +++ .../root/etc/init.d/familycloud | 25 ++++++++++ .../root/etc/ppp/ip-up.d/familycloud.sh | 3 ++ .../root/etc/uci-defaults/familycloud | 11 +++++ .../share/familycloud/CloudDisk/config.ini | 10 ++++ .../share/familycloud/CloudDisk/config.json | 1 + .../share/familycloud/CloudDisk/speedup.sh | 45 +++++++++++++++++ .../familycloud/CloudDisk/speedup_router.sh | 41 ++++++++++++++++ .../usr/share/familycloud/CloudDisk/utils.sh | 43 +++++++++++++++++ .../share/familycloud/FamilyCloud/config.ini | 14 ++++++ .../share/familycloud/FamilyCloud/config.json | 1 + .../share/familycloud/FamilyCloud/speedup.sh | 48 +++++++++++++++++++ .../familycloud/FamilyCloud/speedup_router.sh | 43 +++++++++++++++++ .../share/familycloud/FamilyCloud/utils.sh | 43 +++++++++++++++++ package/network/utils/curl/Config.in | 2 +- 20 files changed, 434 insertions(+), 1 deletion(-) create mode 100644 package/lean/luci-app-familycloud/Makefile create mode 100644 package/lean/luci-app-familycloud/luasrc/controller/familycloud.lua create mode 100644 package/lean/luci-app-familycloud/luasrc/model/cbi/familycloud.lua create mode 100644 package/lean/luci-app-familycloud/luasrc/model/cbi/familycloudlog.lua create mode 100644 package/lean/luci-app-familycloud/luasrc/view/familycloud/familycloud_status.htm create mode 100644 package/lean/luci-app-familycloud/root/etc/config/familycloud create mode 100755 package/lean/luci-app-familycloud/root/etc/init.d/familycloud create mode 100755 package/lean/luci-app-familycloud/root/etc/ppp/ip-up.d/familycloud.sh create mode 100755 package/lean/luci-app-familycloud/root/etc/uci-defaults/familycloud create mode 100644 package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/config.ini create mode 120000 package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/config.json create mode 100755 package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/speedup.sh create mode 100644 package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/speedup_router.sh create mode 100755 package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/utils.sh create mode 100644 package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/config.ini create mode 120000 package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/config.json create mode 100755 package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/speedup.sh create mode 100644 package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/speedup_router.sh create mode 100755 package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/utils.sh diff --git a/package/lean/luci-app-familycloud/Makefile b/package/lean/luci-app-familycloud/Makefile new file mode 100644 index 0000000000..280d44b4cf --- /dev/null +++ b/package/lean/luci-app-familycloud/Makefile @@ -0,0 +1,18 @@ +# Copyright (C) 2016 Openwrt.org +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI support for FamilyCloudSpeeder +LUCI_DEPENDS:=+coreutils +coreutils-nohup +libreadline +libcurl +libopenssl +bash +curl +wget +openssl-util +ca-certificates +ca-bundle +LUCI_PKGARCH:=all +PKG_NAME:=luci-app-familycloud +PKG_VERSION:=1 +PKG_RELEASE:=3 + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature + diff --git a/package/lean/luci-app-familycloud/luasrc/controller/familycloud.lua b/package/lean/luci-app-familycloud/luasrc/controller/familycloud.lua new file mode 100644 index 0000000000..5cf533b87f --- /dev/null +++ b/package/lean/luci-app-familycloud/luasrc/controller/familycloud.lua @@ -0,0 +1,23 @@ + +module("luci.controller.familycloud", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/ipsec") then + return + end + + entry({"admin", "services", "familycloud"},firstchild(), _("天翼家庭云/云盘提速"), 80).dependent = false + + entry({"admin", "services", "familycloud", "general"},cbi("familycloud"), _("Base Setting"), 1) + entry({"admin", "services", "familycloud", "log"},form("familycloudlog"), _("Log"), 2) + + entry({"admin","services","familycloud","status"},call("act_status")).leaf=true +end + +function act_status() + local e={} + e.running=luci.sys.call("ps | grep speedup.sh | grep -v grep >/dev/null")==0 + luci.http.prepare_content("application/json") + luci.http.write_json(e) +end + diff --git a/package/lean/luci-app-familycloud/luasrc/model/cbi/familycloud.lua b/package/lean/luci-app-familycloud/luasrc/model/cbi/familycloud.lua new file mode 100644 index 0000000000..d4a0b64281 --- /dev/null +++ b/package/lean/luci-app-familycloud/luasrc/model/cbi/familycloud.lua @@ -0,0 +1,22 @@ + +mp = Map("familycloud", translate("天翼家庭云/天翼云盘提速")) +mp.description = translate("天翼家庭云/天翼云盘提速 (最高可达500Mbps)") + +mp:section(SimpleSection).template = "familycloud/familycloud_status" + +s = mp:section(TypedSection, "familycloud") +s.anonymous=true +s.addremove=false + +enabled = s:option(Flag, "enabled", translate("启用提速")) +enabled.default = 0 +enabled.rmempty = false + +speedtype = s:option(ListValue, "speedertype", translate("天翼提速包类型")) +speedtype:value("CloudDisk", translate("天翼云盘提速")) +speedtype:value("FamilyCloud", translate("天翼家庭云提速")) + +account = s:option(Value, "token", translate("AccessToken")) +account.datatype = "string" + +return mp diff --git a/package/lean/luci-app-familycloud/luasrc/model/cbi/familycloudlog.lua b/package/lean/luci-app-familycloud/luasrc/model/cbi/familycloudlog.lua new file mode 100644 index 0000000000..9471b410d2 --- /dev/null +++ b/package/lean/luci-app-familycloud/luasrc/model/cbi/familycloudlog.lua @@ -0,0 +1,14 @@ +local fs = require "nixio.fs" +local conffile = "/tmp/familycloud.log" + +f = SimpleForm("logview") + +t = f:field(TextValue, "conf") +t.rmempty = true +t.rows = 15 +function t.cfgvalue() + return fs.readfile(conffile) or "" +end +t.readonly="readonly" + +return f \ No newline at end of file diff --git a/package/lean/luci-app-familycloud/luasrc/view/familycloud/familycloud_status.htm b/package/lean/luci-app-familycloud/luasrc/view/familycloud/familycloud_status.htm new file mode 100644 index 0000000000..002565430a --- /dev/null +++ b/package/lean/luci-app-familycloud/luasrc/view/familycloud/familycloud_status.htm @@ -0,0 +1,22 @@ + + +
+

+ <%:Collecting data...%> +

+
\ No newline at end of file diff --git a/package/lean/luci-app-familycloud/root/etc/config/familycloud b/package/lean/luci-app-familycloud/root/etc/config/familycloud new file mode 100644 index 0000000000..55b9172ee3 --- /dev/null +++ b/package/lean/luci-app-familycloud/root/etc/config/familycloud @@ -0,0 +1,6 @@ + +config familycloud + option token 'f18a1952289c4659b3722ad54d3d92fb' + option speedertype 'CloudDisk' + option enabled '0' + diff --git a/package/lean/luci-app-familycloud/root/etc/init.d/familycloud b/package/lean/luci-app-familycloud/root/etc/init.d/familycloud new file mode 100755 index 0000000000..974a81a240 --- /dev/null +++ b/package/lean/luci-app-familycloud/root/etc/init.d/familycloud @@ -0,0 +1,25 @@ +#!/bin/sh /etc/rc.common + +START=99 +STOP=10 + +TYPE=$(uci get familycloud.@familycloud[0].speedertype) +TOKEN=$(uci get familycloud.@familycloud[0].token) + + +start() +{ + stop + enable=$(uci get familycloud.@familycloud[0].enabled) + [ $enable -eq 0 ] && exit 0 + sed "s/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/$TOKEN/" /usr/share/familycloud/$TYPE/config.ini > /tmp/config.json + bash /usr/share/familycloud/$TYPE/speedup.sh > /tmp/familycloud.log & +} + +stop() +{ + kill -9 $(ps | grep speedup.sh | grep -v grep | awk '{print $1}') >/dev/null 2>&1 +} + + + diff --git a/package/lean/luci-app-familycloud/root/etc/ppp/ip-up.d/familycloud.sh b/package/lean/luci-app-familycloud/root/etc/ppp/ip-up.d/familycloud.sh new file mode 100755 index 0000000000..60074df64b --- /dev/null +++ b/package/lean/luci-app-familycloud/root/etc/ppp/ip-up.d/familycloud.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +sleep 60 && /etc/init.d/familycloud restart diff --git a/package/lean/luci-app-familycloud/root/etc/uci-defaults/familycloud b/package/lean/luci-app-familycloud/root/etc/uci-defaults/familycloud new file mode 100755 index 0000000000..1af3967325 --- /dev/null +++ b/package/lean/luci-app-familycloud/root/etc/uci-defaults/familycloud @@ -0,0 +1,11 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@familycloud[-1] + add ucitrack familycloud + set ucitrack.@familycloud[-1].init=familycloud + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/config.ini b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/config.ini new file mode 100644 index 0000000000..31f0d788a8 --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/config.ini @@ -0,0 +1,10 @@ +{ + "accessToken": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "setting": { + "method": "GET", + "rate": 600 + }, + "extra_header": { + "User-Agent": "Apache-HttpClient/UNAVAILABLE (java 1.4)" + } +} \ No newline at end of file diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/config.json b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/config.json new file mode 120000 index 0000000000..35e21f5b3e --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/config.json @@ -0,0 +1 @@ +/tmp/config.json \ No newline at end of file diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/speedup.sh b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/speedup.sh new file mode 100755 index 0000000000..30006574cf --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/speedup.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +base_dir=`dirname $0` +source "$base_dir/utils.sh" +config="$base_dir/config.json" + + +accessToken=`getSingleJsonValue "$config" "accessToken"` +method=`getSingleJsonValue "$config" "method"` +rate=`getSingleJsonValue "$config" "rate"` +UA=`getSingleJsonValue "$config" "User-Agent"` +extra_header="User-Agent:$UA" + + +HOST="http://api.cloud.189.cn" +LOGIN_URL="/loginByOpen189AccessToken.action" +ACCESS_URL="/speed/startSpeedV2.action" +count=0 +echo "*******************************************" +while : +do + count=$((count+1)) + echo "Sending heart_beat package <$count>" + split="~" + headers_string="$extra_header" + headers=`formatHeaderString "$split" "$headers_string"` + result=`get "$HOST$LOGIN_URL?accessToken=$accessToken" "$headers"` + session_key=`echo "$result" | grep -Eo "sessionKey>.*//'` + session_secret=`echo "$result" | grep -Eo "sessionSecret>.*//' | sed 's/<\/sessionSecret//'` + date=`env LANG=C.UTF-8 date -u '+%a, %d %b %Y %T GMT'` + data="SessionKey=$session_key&Operate=$method&RequestURI=$ACCESS_URL&Date=$date" + key="$session_secret" + signature=`hashHmac "sha1" "$data" "$key"` + headers_string="SessionKey:$session_key"${split}"Signature:$signature"${split}"Date:$date"${split}"$extra_header" + headers=`formatHeaderString "$split" "$headers_string"` + qosClientSn="$session_key" + result=`get "$HOST$ACCESS_URL?qosClientSn=$qosClientSn" "$headers"` + echo "heart_beat:" + echo "date:<$date>" + echo -e "response:\n$result" + [[ "`echo ${result} | grep dialAcc`" != "" ]] && hint="succeeded" || hint="failed" + echo "Sending heart_beat package <$count> $hint" + echo "*******************************************" + sleep ${rate} +done diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/speedup_router.sh b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/speedup_router.sh new file mode 100644 index 0000000000..769b5a63b5 --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/speedup_router.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +base_dir=`dirname $0` +source "$base_dir/utils.sh" +config="$base_dir/config.json" + +echoToLogreader() { + logger -t CloudDisk "${1}" +} + +accessToken=`getSingleJsonValue "$config" "accessToken"` +method=`getSingleJsonValue "$config" "method"` +UA=`getSingleJsonValue "$config" "User-Agent"` +extra_header="User-Agent:$UA" + + +HOST="http://api.cloud.189.cn" +LOGIN_URL="/loginByOpen189AccessToken.action" +ACCESS_URL="/speed/startSpeedV2.action" +echoToLogreader "*******************************************" +echoToLogreader "Sending Heartbeat Package ..." +split="~" +headers_string="$extra_header" +headers=`formatHeaderString "$split" "$headers_string"` +result=`get "$HOST$LOGIN_URL?accessToken=$accessToken" "$headers"` +session_key=`echo "$result" | grep -Eo "sessionKey>.*//'` +session_secret=`echo "$result" | grep -Eo "sessionSecret>.*//' | sed 's/<\/sessionSecret//'` +date=`env LANG=C.UTF-8 date -u '+%a, %d %b %Y %T GMT'` +data="SessionKey=$session_key&Operate=$method&RequestURI=$ACCESS_URL&Date=$date" +key="$session_secret" +signature=`hashHmac "sha1" "$data" "$key"` +headers_string="SessionKey:$session_key"${split}"Signature:$signature"${split}"Date:$date"${split}"$extra_header" +headers=`formatHeaderString "$split" "$headers_string"` +qosClientSn=`cat /proc/sys/kernel/random/uuid` +result=`get "$HOST$ACCESS_URL?qosClientSn=$qosClientSn" "$headers"` +echoToLogreader "Heartbeat Signature: $signature" +echoToLogreader "Date: $date" +echoToLogreader "Response: $result" +[[ "`echo ${result} | grep dialAcc`" != "" ]] && hint="succeeded" || hint="failed" +echoToLogreader "Heartbeating $hint." +echoToLogreader "*******************************************" diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/utils.sh b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/utils.sh new file mode 100755 index 0000000000..d54e1e3a94 --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/CloudDisk/utils.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +CONNECTION_TIME="15" +TRANSMISSION_TIME="15" + +formatHeaderString() { + OLD_IFS=$IFS + IFS="$1" + STR="$2" + ARRAY=(${STR}) + for i in "${!ARRAY[@]}" + do + HEADERS="$HEADERS -H '${ARRAY[$i]}'" + done + echo ${HEADERS} | sed 's/^ //' + IFS=${OLD_IFS} +} + +get() { + HEADER="$1" + URL="$2" + eval curl -s --connect-timeout "${CONNECTION_TIME}" -m "${TRANSMISSION_TIME}" "${HEADER}" "${URL}" +} + +post() { + HEADER="$1" + URL="$2" + PAYLOAD="$3" + eval curl -s --connect-timeout "${CONNECTION_TIME}" -m "${TRANSMISSION_TIME}" -X POST "${URL}" "${HEADER}" -w %{http_code} -d "'$PAYLOAD'" +} + +getSingleJsonValue() { + FILE="$1" + KEY="$2" + cat ${FILE} | grep "$KEY" | sed 's/,$//' | awk -F "[:]" '{ print $2 }' | sed 's/ //g' | sed 's/"//g' +} + +hashHmac() { + digest="$1" + data="$2" + key="$3" + echo -n "$data" | openssl dgst "-$digest" -hmac "$key" | sed -e 's/^.* //' | tr 'a-z' 'A-Z' +} diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/config.ini b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/config.ini new file mode 100644 index 0000000000..f83cab7d17 --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/config.ini @@ -0,0 +1,14 @@ +{ + "accessToken": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", + "AppKey": "600100885", + "setting": { + "method": "POST", + "rate": 600 +}, + "send_data": { + "prodCode": "76" + }, + "extra_header": { + "User-Agent": "Apache-HttpClient/UNAVAILABLE (java 1.4)" + } +} \ No newline at end of file diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/config.json b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/config.json new file mode 120000 index 0000000000..35e21f5b3e --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/config.json @@ -0,0 +1 @@ +/tmp/config.json \ No newline at end of file diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/speedup.sh b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/speedup.sh new file mode 100755 index 0000000000..d7ade60cf6 --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/speedup.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +base_dir=`dirname $0` +source "$base_dir/utils.sh" +config="$base_dir/config.json" + + +accessToken=`getSingleJsonValue "$config" "accessToken"` +AppKey=`getSingleJsonValue "$config" "AppKey"` +method=`getSingleJsonValue "$config" "method"` +rate=`getSingleJsonValue "$config" "rate"` +prodCode=`getSingleJsonValue "$config" "prodCode"` +UA=`getSingleJsonValue "$config" "User-Agent"` +extra_header="User-Agent:$UA" + + +HOST="http://api.cloud.189.cn" +LOGIN_URL="/login4MergedClient.action" +ACCESS_URL="/family/qos/startQos.action" +count=0 +echo "*******************************************" +while : +do + count=$((count+1)) + echo "Sending heart_beat package <$count>" + split="~" + headers_string="AppKey:$AppKey"${split}"$extra_header" + headers=`formatHeaderString "$split" "$headers_string"` + result=`post "$headers" "$HOST$LOGIN_URL?accessToken=$accessToken"` + session_key=`echo "$result" | grep -Eo "familySessionKey>.+//' | sed 's/<\/familySessionKey//'` + session_secret=`echo "$result" | grep -Eo "familySessionSecret>.+//' | sed 's/<\/familySessionSecret//'` + date=`env LANG=C.UTF-8 date -u '+%a, %d %b %Y %T GMT'` + data="SessionKey=$session_key&Operate=$method&RequestURI=$ACCESS_URL&Date=$date" + key="$session_secret" + signature=`hashHmac "sha1" "$data" "$key"` + headers_string="SessionKey:$session_key"${split}"Signature:$signature"${split}"Date:$date"${split}"$extra_header" + headers=`formatHeaderString "$split" "$headers_string"` + send_data="prodCode=$prodCode" + result=`post "$headers" "$HOST$ACCESS_URL" "$send_data"` + echo "heart_beat:" + echo "date:<$date>" + echo "status_code:${result: -3}" + echo -e "response:\n`echo ${result} | sed "s^[0-9]\{3\}$^^"`" + [[ "`echo ${result} | grep dialAcc`" != "" ]] && hint="succeeded" || hint="failed" + echo "Sending heart_beat package <$count> $hint" + echo "*******************************************" + sleep ${rate} +done \ No newline at end of file diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/speedup_router.sh b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/speedup_router.sh new file mode 100644 index 0000000000..721023b0cc --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/speedup_router.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +base_dir=`dirname $0` +source "$base_dir/utils.sh" +config="$base_dir/config.json" + +echoToLogreader() { + logger -t FamilyCloud "${1}" +} + +accessToken=`getSingleJsonValue "$config" "accessToken"` +AppKey=`getSingleJsonValue "$config" "AppKey"` +method=`getSingleJsonValue "$config" "method"` +prodCode=`getSingleJsonValue "$config" "prodCode"` +UA=`getSingleJsonValue "$config" "User-Agent"` +extra_header="User-Agent:$UA" + + +HOST="http://api.cloud.189.cn" +LOGIN_URL="/login4MergedClient.action" +ACCESS_URL="/family/qos/startQos.action" +echoToLogreader "*******************************************" +echoToLogreader "Sending Heartbeat Package ..." +split="~" +headers_string="AppKey:$AppKey"${split}"$extra_header" +headers=`formatHeaderString "$split" "$headers_string"` +result=`post "$headers" "$HOST$LOGIN_URL?accessToken=$accessToken"` +session_key=`echo "$result" | grep -Eo "familySessionKey>.+//' | sed 's/<\/familySessionKey//'` +session_secret=`echo "$result" | grep -Eo "familySessionSecret>.+//' | sed 's/<\/familySessionSecret//'` +date=`env LANG=C.UTF-8 date -u '+%a, %d %b %Y %T GMT'` +data="SessionKey=$session_key&Operate=$method&RequestURI=$ACCESS_URL&Date=$date" +key="$session_secret" +signature=`hashHmac "sha1" "$data" "$key"` +headers_string="SessionKey:$session_key"${split}"Signature:$signature"${split}"Date:$date"${split}"$extra_header" +headers=`formatHeaderString "$split" "$headers_string"` +send_data="prodCode=$prodCode" +result=`post "$headers" "$HOST$ACCESS_URL" "$send_data"` +echoToLogreader "Heartbeat Signature: $signature" +echoToLogreader "Date: $date" +echoToLogreader "Response: ${result}" +[[ "`echo ${result} | grep dialAcc`" != "" ]] && hint="succeeded" || hint="failed" +echoToLogreader "Heartbeating $hint." +echoToLogreader "*******************************************" diff --git a/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/utils.sh b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/utils.sh new file mode 100755 index 0000000000..d54e1e3a94 --- /dev/null +++ b/package/lean/luci-app-familycloud/root/usr/share/familycloud/FamilyCloud/utils.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +CONNECTION_TIME="15" +TRANSMISSION_TIME="15" + +formatHeaderString() { + OLD_IFS=$IFS + IFS="$1" + STR="$2" + ARRAY=(${STR}) + for i in "${!ARRAY[@]}" + do + HEADERS="$HEADERS -H '${ARRAY[$i]}'" + done + echo ${HEADERS} | sed 's/^ //' + IFS=${OLD_IFS} +} + +get() { + HEADER="$1" + URL="$2" + eval curl -s --connect-timeout "${CONNECTION_TIME}" -m "${TRANSMISSION_TIME}" "${HEADER}" "${URL}" +} + +post() { + HEADER="$1" + URL="$2" + PAYLOAD="$3" + eval curl -s --connect-timeout "${CONNECTION_TIME}" -m "${TRANSMISSION_TIME}" -X POST "${URL}" "${HEADER}" -w %{http_code} -d "'$PAYLOAD'" +} + +getSingleJsonValue() { + FILE="$1" + KEY="$2" + cat ${FILE} | grep "$KEY" | sed 's/,$//' | awk -F "[:]" '{ print $2 }' | sed 's/ //g' | sed 's/"//g' +} + +hashHmac() { + digest="$1" + data="$2" + key="$3" + echo -n "$data" | openssl dgst "-$digest" -hmac "$key" | sed -e 's/^.* //' | tr 'a-z' 'A-Z' +} diff --git a/package/network/utils/curl/Config.in b/package/network/utils/curl/Config.in index 9afeb00bc7..76ab7edb7a 100644 --- a/package/network/utils/curl/Config.in +++ b/package/network/utils/curl/Config.in @@ -4,7 +4,7 @@ comment "SSL support" choice prompt "Selected SSL library" - default LIBCURL_MBEDTLS + default LIBCURL_OPENSSL config LIBCURL_MBEDTLS bool "mbed TLS"