gpt4 book ai didi

c++ - flexlm 借用许可证 LM_BORROW_STAT 结构

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:23 27 4
gpt4 key购买 nike

我需要修复一些包装 flexlm 11 的遗留代码。这些代码显然适用于早期的 flexlm 版本,并且在版本 11 的 LM_BORROW_STAT 中一定有一些改变。

代码通过以下方式检索借用的许可证

lc_get_attr(_jobData->_job, LM_A_BORROW_STAT, (short*) &pBorrowStatus)

它们在 LM_BORROW_STAT 结构中返回,如下所示:

typedef struct _lm_borrow_stat {
struct _lm_borrow_stat *next;
char feature[MAX_FEATURE_LEN+1];
char vendor[MAX_VENDOR_NAME + 1];
time_t start;
time_t end;
char code[MAX_CRYPT_LEN + 1];
int borrow_binary_id;
} LM_BORROW_STAT;

问题是总是返回 0 的结束日期——功能、供应商和开始日期工作正常,因此 LM_BORROW_STAT 结束的结构或定义中一定有某些更改。我知道结束日期正确存储在借用的许可证中,因为 flexlm 接受许可证有效。

由于 flexlm 在注册表中保留过期的借用许可证并在枚举时返回它们,我需要访问结束日期以查看哪些借用许可证仍然有效且可用。

很遗憾,我找不到任何 flexlm 11 的开发人员/API 引用。

有谁知道读取 flexlm 11 借用许可证的结束日期的正确方法,或者只是检索有效/未过期的借用许可证?

最佳答案

自版本 11 以来,FlexLM API 似乎确实发生了变化。

因为我也没有找到版本 11 的文档(Flexera 文档区域有完全不同的东西?),我只能告诉你结构中似乎有两个新值,end 有被转移了。

typedef struct _lm_borrow_stat {
struct _lm_borrow_stat *next;
char feature[MAX_FEATURE_LEN+1];
char vendor[MAX_VENDOR_NAME + 1];
time_t start;
long new_var_1;
time_t end;
long new_var_2;
char code[MAX_CRYPT_LEN + 1];
int borrow_binary_id;
} LM_BORROW_STAT;

在我看来,这修复了 end 的值,这也意味着,在后台他们直接从内存中读取这个结构。

所以实际上,当您使用版本 11 时,从 end 开始向下的所有内容都可能存在旧代码缺陷。

关于c++ - flexlm 借用许可证 LM_BORROW_STAT 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27187310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com