From f455f4ffec96c5838de6f10b7b2959c860485be1 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期五, 02 四月 2021 14:47:51 +0800
Subject: [PATCH] 添加试用期校验
---
os.go | 28 ++++++++++++++++++++++++++++
licence.go | 12 +++++++++++-
2 files changed, 39 insertions(+), 1 deletions(-)
diff --git a/licence.go b/licence.go
index e81955c..96f81ec 100644
--- a/licence.go
+++ b/licence.go
@@ -154,13 +154,23 @@
func _verifyLicence(licenceText []byte) uint32 {
var licence Licence
+ var now = time.Now().Unix()
if err := json.Unmarshal(licenceText, &licence); err != nil {
return ValidationErrorMalformed
}
+ // 鍒ゆ柇鏄惁鍙互璇曠敤
+ if licence.RegCode.MachineCode == "FFFFFFFF" {
+ osInstallTime := GetOSInstallationDate()
+ if now - osInstallTime > 60 * 60 * 24 * 30 {
+ return ValidationErrorExpired
+ }
+
+ return 0
+ }
+
// 鍒ゆ柇杩囨湡
- now := time.Now().Unix()
if now > licence.Expires {
return ValidationErrorExpired
}
diff --git a/os.go b/os.go
new file mode 100644
index 0000000..af85516
--- /dev/null
+++ b/os.go
@@ -0,0 +1,28 @@
+package licence
+
+import (
+ "fmt"
+ "io/ioutil"
+ "time"
+ "syscall"
+)
+
+func GetOSInstallationDate() int64{
+ fileSystemCreateTime := time.Now().Unix()
+
+ fileSystemDir := "/etc"
+
+ fileInfoList, err := ioutil.ReadDir(fileSystemDir)
+ if err != nil {
+ fmt.Println(err)
+ }
+
+ for i := range fileInfoList {
+ stat_t := fileInfoList[i].Sys().(*syscall.Stat_t)
+ if stat_t.Ctim.Sec < fileSystemCreateTime{
+ fileSystemCreateTime = stat_t.Ctim.Sec
+ }
+ }
+
+ return fileSystemCreateTime
+}
\ No newline at end of file
--
Gitblit v1.8.0