Пример #1
0
PJ_DEF(pj_str_t*) pj_generate_unique_string(pj_str_t *str)
{
    static int guid_initialized;
    static unsigned pid;
    static char str_pid[32];
    static unsigned char mac_addr[32];
    static char str_mac_addr[32];
    static unsigned clock_seq;

    PJ_CHECK_STACK();

    if (guid_initialized == 0) {
	pid = pj_getpid();
	init_mac_address(mac_addr);
	clock_seq = 0;

	sprintf(str_pid, "%04x", pid);
	sprintf(str_mac_addr, "%02x%02x%02x%02x%02x%02x",
	    mac_addr[0], mac_addr[1], mac_addr[2],
	    mac_addr[3], mac_addr[4], mac_addr[5]);

	guid_initialized = 1;
    }

    strcpy(str->ptr, str_pid);
    sprintf(str->ptr+4, "%04x", clock_seq++);
    pj_memcpy(str->ptr+8, str_mac_addr, 12);
    str->slen = 20;

    return str;
}
CPU_BOOLEAN Exosite_Init(CPU_CHAR * pVen, CPU_CHAR * pOS, CPU_CHAR * pVer, NET_IF_NBR if_nbr)
{
    init_mac_address(if_nbr);
    init_flash_content();

    Str_Copy_N(VEN, pVen, VEN_SIZE);
    VEN[VEN_SIZE - 1] = 0;
    VEN_LENGTH = Str_Len(VEN);
    
    Str_Copy_N(OSN, pOS, OSN_SIZE);
    OSN[OSN_SIZE - 1] = 0;
    OSN_LENGTH = Str_Len(OSN);

    Str_Copy_N(OSV, pVer, OSV_SIZE);
    OSV[OSV_SIZE - 1] = 0;
    OSV_LENGTH = Str_Len(OSV);

    return Exosite_Reinit();
}