Exemplo n.º 1
0
EC_BOOL lic_date_check(const LIC_DATE *lic_date)
{
    if(LIC_DATE_START_YEAR(lic_date) > LIC_DATE_END_YEAR(lic_date))
    {
        return (EC_FALSE);
    }

    if(LIC_DATE_START_YEAR(lic_date) < LIC_DATE_END_YEAR(lic_date))
    {
        return (EC_TRUE);
    }

    /*now start year == end year*/

    if(LIC_DATE_START_MONTH(lic_date) > LIC_DATE_END_MONTH(lic_date))
    {
        return (EC_FALSE);
    }

    if(LIC_DATE_START_MONTH(lic_date) < LIC_DATE_END_MONTH(lic_date))
    {
        return (EC_TRUE);
    }

    /*now start month == end month*/

    if(LIC_DATE_START_DAY(lic_date) > LIC_DATE_END_DAY(lic_date))
    {
        return (EC_FALSE);
    }

    if(LIC_DATE_START_DAY(lic_date) < LIC_DATE_END_DAY(lic_date))
    {
        return (EC_TRUE);
    }

    return (EC_FALSE);
}
Exemplo n.º 2
0
EC_BOOL lic_date_clean(LIC_DATE *lic_date)
{
    LIC_DATE_START_YEAR(lic_date)  = 0;
    LIC_DATE_START_MONTH(lic_date) = 0;
    LIC_DATE_START_DAY(lic_date)   = 0;
    LIC_DATE_START_RSVD(lic_date)  = 0;

    LIC_DATE_END_YEAR(lic_date)  = 0;
    LIC_DATE_END_MONTH(lic_date) = 0;
    LIC_DATE_END_DAY(lic_date)   = 0;
    LIC_DATE_END_RSVD(lic_date)  = 0;

    return (EC_TRUE);
}
Exemplo n.º 3
0
void lic_date_print(LOG *log, const LIC_DATE *lic_date)
{
    sys_log(log, "start date  : %4ld-%02ld-%02d\n",
                LIC_DATE_START_YEAR(lic_date),
                LIC_DATE_START_MONTH(lic_date),
                LIC_DATE_START_DAY(lic_date)
                );

    sys_log(log, "end date    : %4ld-%02ld-%02d\n",
                LIC_DATE_END_YEAR(lic_date),
                LIC_DATE_END_MONTH(lic_date),
                LIC_DATE_END_DAY(lic_date)
                );
    return;
}
Exemplo n.º 4
0
EC_BOOL lic_check()
{
    LIC_CFG lic_cfg;

    struct tm *cur_time;

    UINT32 year;
    UINT32 month;
    UINT32 day;

    LIC_DATE   *lic_date;

    int fd;

    lic_cfg_init(&lic_cfg);

    fd = c_file_open(g_lic_file_name, O_RDONLY, 0666);
    if(-1 == fd)
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_check: open license file %s failed\n", g_lic_file_name);
        lic_cfg_clean(&lic_cfg);
        return (EC_FALSE);
    }

    if(EC_FALSE == lic_cfg_load(fd, &lic_cfg))
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_check: load license file %s failed\n", g_lic_file_name);
        close(fd);
        lic_cfg_clean(&lic_cfg);
        return (EC_FALSE);
    }

    /*check signature*/
    if(EC_FALSE == lic_cfg_verify(&lic_cfg))
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_check: verify signature failed\n");
        close(fd);
        lic_cfg_clean(&lic_cfg);
        return (EC_FALSE);
    }

    close(fd);

    /*check mac addr*/
    if(EC_FALSE == lic_mac_verify(LIC_CFG_MAC(&lic_cfg)))
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_check: verify mac addr failed\n");
        lic_cfg_clean(&lic_cfg);
        return (EC_FALSE);
    }

    /*check version*/
    if(EC_FALSE == lic_version_verify((char *)LIC_CFG_VERSION(&lic_cfg)))
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_check: verify version failed\n");
        lic_cfg_clean(&lic_cfg);
        return (EC_FALSE);
    }

    /*check vendor*/
    if(EC_FALSE == lic_vendor_verify((char *)LIC_CFG_VENDOR_NAME(&lic_cfg), (char *)LIC_CFG_VENDOR_EMAIL(&lic_cfg)))
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_check: verify vendor failed\n");
        lic_cfg_clean(&lic_cfg);
        return (EC_FALSE);
    }

    /*check expiration*/
    cur_time = c_localtime_r(NULL_PTR);

    year  = cur_time->tm_year + 1900;
    month = cur_time->tm_mon + 1;
    day   = cur_time->tm_mday;

    lic_date = LIC_CFG_DATE(&lic_cfg);

    if(LIC_DATE_END_YEAR(lic_date) > year)
    {
        lic_cfg_clean(&lic_cfg);
        return (EC_TRUE);
    }

    if(LIC_DATE_END_YEAR(lic_date) < year)
    {
        dbg_log(SEC_0060_LICENSE, 1)(LOGSTDOUT, "warn:lic_check: license is expired\n");
        lic_cfg_clean(&lic_cfg);
        return (EC_FALSE);
    }

    /*now year == end year*/
    if(LIC_DATE_END_MONTH(lic_date) > month)
    {
        lic_cfg_clean(&lic_cfg);
        return (EC_TRUE);
    }

    if(LIC_DATE_END_MONTH(lic_date) < month)
    {
        dbg_log(SEC_0060_LICENSE, 1)(LOGSTDOUT, "warn:lic_check: license is expired\n");
        lic_cfg_clean(&lic_cfg);
        return (EC_FALSE);
    }

    /*now month == end month*/
    if(LIC_DATE_END_DAY(lic_date) < day)
    {
        dbg_log(SEC_0060_LICENSE, 1)(LOGSTDOUT, "warn:lic_check: license is expired\n");
        lic_cfg_clean(&lic_cfg);
        return (EC_FALSE);
    }

    if(LIC_DATE_END_DAY(lic_date) < day + 15)
    {
        dbg_log(SEC_0060_LICENSE, 1)(LOGSTDOUT, "warn:lic_check: license will be expired in %ld days. please contact %s/%s to renew.\n",
                            LIC_DATE_END_DAY(lic_date) - day,
                            g_lic_vendor_name, g_lic_vendor_email);
    }

    lic_cfg_clean(&lic_cfg);
    return (EC_TRUE);
}
Exemplo n.º 5
0
EC_BOOL lic_date_make(LIC_DATE *lic_date, const char *start_date_str, const char *end_date_str)
{
    char  start_date_str_tmp[32];
    char  end_date_str_tmp[32];
    char  *fields[8];
    UINT32 field_num;

    UINT32 year;
    UINT32 month;
    UINT32 day;

    snprintf(start_date_str_tmp, sizeof(start_date_str_tmp)/sizeof(start_date_str_tmp[0]), "%s", start_date_str);
    snprintf(end_date_str_tmp, sizeof(end_date_str_tmp)/sizeof(end_date_str_tmp[0]), "%s", end_date_str);

    /*start date*/
    field_num = c_str_split(start_date_str_tmp, "-/", fields, sizeof(fields)/sizeof(fields[ 0 ]));
    if(3 != field_num)
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_date_make: invalid start date: %s\n", start_date_str);
        return (EC_FALSE);
    }

    year  = c_str_to_word(fields[ 0 ]);
    month = c_str_to_word(fields[ 1 ]);
    day   = c_str_to_word(fields[ 2 ]);

    if(2012 > year || year > 4095 || 1 > month || month > 12 || 1 > day || day > 31)
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_date_make: illegal start date: %s\n", start_date_str);
        return (EC_FALSE);
    }

    LIC_DATE_START_YEAR(lic_date)  = year;
    LIC_DATE_START_MONTH(lic_date) = month;
    LIC_DATE_START_DAY(lic_date)   = day;

    /*end date*/
    field_num = c_str_split(end_date_str_tmp, "-/", fields, sizeof(fields)/sizeof(fields[ 0 ]));
    if(3 != field_num)
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_date_make: invalid end date: %s\n", end_date_str);
        return (EC_FALSE);
    }

    year  = c_str_to_word(fields[ 0 ]);
    month = c_str_to_word(fields[ 1 ]);
    day   = c_str_to_word(fields[ 2 ]);

    if(2012 > year || year > 4095 || 1 > month || month > 12 || 1 > day || day > 31)
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_date_make: illegal end date: %s\n", end_date_str);
        return (EC_FALSE);
    }

    LIC_DATE_END_YEAR(lic_date)  = year;
    LIC_DATE_END_MONTH(lic_date) = month;
    LIC_DATE_END_DAY(lic_date)   = day;

    if(EC_FALSE == lic_date_check(lic_date))
    {
        dbg_log(SEC_0060_LICENSE, 0)(LOGSTDOUT, "error:lic_date_make: illegal issued expiration: from %s to %s\n", start_date_str, end_date_str);
        return (EC_FALSE);
    }
    return (EC_TRUE);
}