заимствованные лицензии flexlm LM_BORROW_STAT struct

Мне нужно исправить какой-то унаследованный код, который упаковывает flexlm 11. Код, очевидно, работал с более ранними версиями flexlm, и что-то должно было измениться в LM_BORROW_STAT в версии 11.

Код извлекает заимствованные лицензии с

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 хранит заимствованные лицензии с истекшим сроком действия в реестре и возвращает их при перечислении, мне нужно получить доступ к дате окончания, чтобы узнать, какие заимствованные лицензии все еще действительны и доступны.

К сожалению, я не могу найти ссылку на разработчика / API для flexlm 11.

Кто-нибудь знает правильный способ чтения даты окончания для заимствованных лицензий flexlm 11, или, в качестве альтернативы, просто получение действительных / не истекших заимствованных лицензий?

1

Решение

Похоже, что в FlexLM API действительно произошли изменения с версии 11.

Поскольку я также не нашел документации для версии 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 в моих глазах также означает, что сзади они читают эту структуру прямо из памяти.

Так что на самом деле, все начинается с end Вероятно, при использовании версии 11 нисходящая ошибка со старым кодом.

0

Другие решения


По вопросам рекламы [email protected]