zhangzengfei
2021-04-02 f455f4ffec96c5838de6f10b7b2959c860485be1
添加试用期校验
1个文件已添加
1个文件已修改
40 ■■■■■ 已修改文件
licence.go 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
os.go 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
    }
os.go
New file
@@ -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
}